// 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 "testextrainclude.h" #include #include "testutil.h" #include #include #include void TestExtraInclude::testClassExtraInclude() { const char cppCode[] = "struct A {};\n"; const char xmlCode[] = "\ \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); QList includes = classA->typeEntry()->extraIncludes(); QCOMPARE(includes.size(), 1); QCOMPARE(includes.constFirst().name(), u"header.h"); } void TestExtraInclude::testGlobalExtraIncludes() { const char cppCode[] = "struct A {};\n"; const char xmlCode[] = "\ \n\ \n\ \n\ \n\ \n\ \n\ \n"; QScopedPointer builder(TestUtil::parse(cppCode, xmlCode, false)); QVERIFY(builder); AbstractMetaClassList classes = builder->classes(); QVERIFY(AbstractMetaClass::findClass(classes, "A")); auto *td = TypeDatabase::instance(); TypeSystemTypeEntryCPtr module = td->defaultTypeSystemType(); QVERIFY(module); QCOMPARE(module->name(), u"Foo"); QList includes = module->extraIncludes(); QCOMPARE(includes.size(), 2); QCOMPARE(includes.constFirst().name(), u"header1.h"); QCOMPARE(includes.constLast().name(), u"header2.h"); } QTEST_APPLESS_MAIN(TestExtraInclude)