// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "testremoveoperatormethod.h" #include "testutil.h" #include #include #include #include #include using namespace Qt::StringLiterals; void TestRemoveOperatorMethod::testRemoveOperatorMethod() { const char cppCode[] = R"(#include struct Char {}; struct ByteArray {}; struct String {}; struct A { A& operator>>(char&); A& operator>>(char*); A& operator>>(short&); A& operator>>(unsigned short&); A& operator>>(int&); A& operator>>(unsigned int&); A& operator>>(int64_t&); A& operator>>(uint64_t&); A& operator>>(float&); A& operator>>(double&); A& operator>>(Char&); A& operator>>(ByteArray&); A& operator>>(String&); }; )"; const char xmlCode[] = "\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n"; QScopedPointer builder(TestUtil::parse(cppCode, xmlCode, false)); QVERIFY(builder); AbstractMetaClassList classes = builder->classes(); const auto classA = AbstractMetaClass::findClass(classes, "A"); QVERIFY(classA); QCOMPARE(classA->functions().size(), 14); QStringList removedSignatures; removedSignatures.append(u"operator>>(char&)"_s); removedSignatures.append(u"operator>>(char*)"_s); removedSignatures.append(u"operator>>(short&)"_s); removedSignatures.append(u"operator>>(unsigned short&)"_s); removedSignatures.append(u"operator>>(int&)"_s); removedSignatures.append(u"operator>>(unsigned int&)"_s); removedSignatures.append(u"operator>>(int64_t&)"_s); removedSignatures.append(u"operator>>(uint64_t&)"_s); removedSignatures.append(u"operator>>(float&)"_s); removedSignatures.append(u"operator>>(double&)"_s); removedSignatures.append(u"operator>>(Char&)"_s); removedSignatures.append(u"operator>>(String&)"_s); auto notRemoved = classA->functions().size(); for (const auto &f : classA->functions()) { QCOMPARE(f->isModifiedRemoved(), bool(removedSignatures.contains(f->minimalSignature()))); notRemoved -= int(f->isModifiedRemoved()); } QCOMPARE(notRemoved, 2); } QTEST_APPLESS_MAIN(TestRemoveOperatorMethod)