// 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.isNull()); AbstractMetaClassList classes = builder->classes(); const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, u"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.isNull()); AbstractMetaClassList classes = builder->classes(); QVERIFY(AbstractMetaClass::findClass(classes, u"A")); TypeDatabase* td = TypeDatabase::instance(); const TypeSystemTypeEntry *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)