diff options
35 files changed, 395 insertions, 287 deletions
diff --git a/ApiExtractor/tests/testabstractmetaclass.cpp b/ApiExtractor/tests/testabstractmetaclass.cpp index f9c7cfed5..7fc5c1f0f 100644 --- a/ApiExtractor/tests/testabstractmetaclass.cpp +++ b/ApiExtractor/tests/testabstractmetaclass.cpp @@ -37,8 +37,9 @@ void TestAbstractMetaClass::testClassName() { const char* cppCode ="class ClassName {};"; const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"ClassName\"/></typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); QCOMPARE(classes[0]->name(), QLatin1String("ClassName")); } @@ -51,8 +52,9 @@ void TestAbstractMetaClass::testClassNameUnderNamespace() <namespace-type name=\"Namespace\"/>\n\ <value-type name=\"Namespace::ClassName\"/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); // 1 namespace + 1 class if (classes.first()->name() != QLatin1String("ClassName")) classes.swap(0, 1); @@ -103,8 +105,9 @@ void TestAbstractMetaClass::testVirtualMethods() <object-type name='B'/>\n\ <object-type name='C'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 3); AbstractMetaClass* a = classes.findClass(QLatin1String("A")); AbstractMetaClass* b = classes.findClass(QLatin1String("B")); @@ -170,8 +173,9 @@ void TestAbstractMetaClass::testDefaultValues() <value-type name='A'/>\n\ <value-type name='A::B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QCOMPARE(classA->queryFunctionsByName(QLatin1String("method")).count(), 1); @@ -198,8 +202,9 @@ void TestAbstractMetaClass::testModifiedDefaultValues() </value-type>\n\ <value-type name='A::B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QCOMPARE(classA->queryFunctionsByName(QLatin1String("method")).count(), 1); @@ -221,8 +226,9 @@ void TestAbstractMetaClass::testInnerClassOfAPolymorphicOne() <object-type name='A'/>\n\ <value-type name='A::B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); @@ -247,8 +253,9 @@ void TestAbstractMetaClass::testForwardDeclaredInnerClass() <value-type name='A'/>\n\ <value-type name='A::B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); const AbstractMetaClass *classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); @@ -277,8 +284,9 @@ void TestAbstractMetaClass::testSpecialFunctions() <object-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); const AbstractMetaClass *classA = classes.findClass(QLatin1String("A")); @@ -341,8 +349,9 @@ void TestAbstractMetaClass::testClassDefaultConstructors() <value-type name='F'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 6); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); @@ -409,8 +418,9 @@ void TestAbstractMetaClass::testClassInheritedDefaultConstructors() <object-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); @@ -446,8 +456,9 @@ void TestAbstractMetaClass::testAbstractClassDefaultConstructors() <object-type name='A'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); @@ -466,8 +477,9 @@ void TestAbstractMetaClass::testObjectTypesMustNotHaveCopyConstructors() <object-type name='A'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); @@ -501,8 +513,9 @@ void TestAbstractMetaClass::testIsPolymorphic() <value-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* b = classes.findClass(QLatin1String("A")); diff --git a/ApiExtractor/tests/testabstractmetatype.cpp b/ApiExtractor/tests/testabstractmetatype.cpp index dfe13e037..735ccc2a1 100644 --- a/ApiExtractor/tests/testabstractmetatype.cpp +++ b/ApiExtractor/tests/testabstractmetatype.cpp @@ -39,9 +39,10 @@ void TestAbstractMetaType::testConstCharPtrType() <primitive-type name='char'/>\n\ <function signature='justAtest()' />\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - QCOMPARE(t.builder()->globalFunctions().size(), 1); - AbstractMetaFunction* func = t.builder()->globalFunctions().first(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + QCOMPARE(builder->globalFunctions().size(), 1); + AbstractMetaFunction* func = builder->globalFunctions().first(); AbstractMetaType* rtype = func->type(); // Test properties of const char* QVERIFY(rtype); @@ -71,13 +72,14 @@ void TestAbstractMetaType::testApiVersionSupported() <function signature='justAtest2()' since='1.1'/>\n\ <function signature='justAtest3()'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false, "1.0"); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false, "1.0")); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.size(), 2); - AbstractMetaFunctionList functions = t.builder()->globalFunctions(); + AbstractMetaFunctionList functions = builder->globalFunctions(); QCOMPARE(functions.size(), 2); } @@ -88,9 +90,10 @@ void TestAbstractMetaType::testApiVersionNotSupported() const char* xmlCode = "<typesystem package='Foo'>\n\ <value-type name='object' since='0.1'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, true, "0.1"); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true, "0.1")); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.size(), 1); } @@ -102,13 +105,14 @@ void TestAbstractMetaType::testCharType() <value-type name='A'/>\n\ <function signature='justAtest()'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.size(), 1); QCOMPARE(classes.first()->package(), QLatin1String("Foo")); - AbstractMetaFunctionList functions = t.builder()->globalFunctions(); + AbstractMetaFunctionList functions = builder->globalFunctions(); QCOMPARE(functions.size(), 1); AbstractMetaFunction* func = functions.first(); AbstractMetaType* rtype = func->type(); @@ -139,9 +143,10 @@ void TestAbstractMetaType::testTypedef() const char* xmlCode = "<typesystem package=\"Foo\">\n\ <value-type name='C' />\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.size(), 1); AbstractMetaClass* c = classes.findClass(QLatin1String("C")); QVERIFY(c); @@ -163,11 +168,12 @@ void TestAbstractMetaType::testTypedefWithTemplates() <value-type name='B' />\n\ <function signature='func(A<B>)'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.size(), 1); - AbstractMetaFunctionList functions = t.builder()->globalFunctions(); + AbstractMetaFunctionList functions = builder->globalFunctions(); QCOMPARE(functions.count(), 1); AbstractMetaFunction* function = functions.first(); AbstractMetaArgumentList args = function->arguments(); @@ -187,9 +193,10 @@ void TestAbstractMetaType::testObjectTypeUsedAsValue() const char* xmlCode = "<typesystem package='Foo'>\n\ <object-type name='A'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.size(), 1); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); diff --git a/ApiExtractor/tests/testaddfunction.cpp b/ApiExtractor/tests/testaddfunction.cpp index 6130658da..66ae05502 100644 --- a/ApiExtractor/tests/testaddfunction.cpp +++ b/ApiExtractor/tests/testaddfunction.cpp @@ -82,9 +82,10 @@ void TestAddFunction::testAddFunction() </add-function>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); TypeDatabase* typeDb = TypeDatabase::instance(); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->functions().count(), 4); // default ctor, default copy ctor, func a() and the added function @@ -120,8 +121,9 @@ void TestAddFunction::testAddFunctionConstructor() <add-function signature='A(int)'/>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->functions().count(), 3); // default and added ctors @@ -142,8 +144,9 @@ void TestAddFunction::testAddFunctionTagDefaultValues() <add-function signature='func()'/>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->functions().count(), 3); // default ctor, default copy ctor and the added function @@ -166,8 +169,9 @@ void TestAddFunction::testAddFunctionCodeSnippets() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); AbstractMetaFunction* addedFunc = classA->functions().last(); @@ -193,8 +197,9 @@ void TestAddFunction::testAddFunctionWithoutParenteses() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); const AbstractMetaFunction* addedFunc = classA->findFunction(QLatin1String("func")); @@ -225,8 +230,9 @@ void TestAddFunction::testAddFunctionWithDefaultArgs() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); const AbstractMetaFunction* addedFunc = classA->findFunction(QLatin1String("func")); @@ -247,8 +253,9 @@ void TestAddFunction::testAddFunctionAtModuleLevel() </add-function>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); @@ -285,8 +292,9 @@ void TestAddFunction::testAddFunctionWithVarargs() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); const AbstractMetaFunction* addedFunc = classA->findFunction(QLatin1String("func")); @@ -308,8 +316,9 @@ void TestAddFunction::testAddStaticFunction() </add-function>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); const AbstractMetaFunction* addedFunc = classA->findFunction(QLatin1String("func")); @@ -332,11 +341,12 @@ void TestAddFunction::testAddGlobalFunction() </add-function>\n\ <value-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaFunctionList globalFuncs = t.builder()->globalFunctions(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaFunctionList globalFuncs = builder->globalFunctions(); QCOMPARE(globalFuncs.count(), 2); - QVERIFY(!t.builder()->classes().findClass(QLatin1String("B"))->findFunction(QLatin1String("globalFunc"))); - QVERIFY(!t.builder()->classes().findClass(QLatin1String("B"))->findFunction(QLatin1String("globalFunc2"))); + QVERIFY(!builder->classes().findClass(QLatin1String("B"))->findFunction(QLatin1String("globalFunc"))); + QVERIFY(!builder->classes().findClass(QLatin1String("B"))->findFunction(QLatin1String("globalFunc2"))); QVERIFY(!globalFuncs[0]->injectedCodeSnips().isEmpty()); QVERIFY(!globalFuncs[1]->injectedCodeSnips().isEmpty()); } @@ -354,8 +364,9 @@ void TestAddFunction::testAddFunctionWithApiVersion() <inject-code class='target' position='beginning'>custom_code();</inject-code>\n\ </add-function>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, true, "0.1"); - AbstractMetaFunctionList globalFuncs = t.builder()->globalFunctions(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true, "0.1")); + QVERIFY(!builder.isNull()); + AbstractMetaFunctionList globalFuncs = builder->globalFunctions(); QCOMPARE(globalFuncs.count(), 1); } @@ -376,8 +387,9 @@ void TestAddFunction::testModifyAddedFunction() </add-function>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* foo = classes.findClass(QLatin1String("Foo")); const AbstractMetaFunction* method = foo->findFunction(QLatin1String("method")); QCOMPARE(method->arguments().size(), 2); @@ -403,8 +415,9 @@ void TestAddFunction::testAddFunctionOnTypedef() </add-function>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* foo = classes.findClass(QLatin1String("FooInt")); QVERIFY(foo); QVERIFY(foo->hasNonPrivateConstructor()); @@ -426,9 +439,10 @@ void TestAddFunction::testAddFunctionWithTemplateArg() <add-function signature='func(Foo<int>)'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - QCOMPARE(t.builder()->globalFunctions().size(), 1); - AbstractMetaFunction* func = t.builder()->globalFunctions().first(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + QCOMPARE(builder->globalFunctions().size(), 1); + AbstractMetaFunction* func = builder->globalFunctions().first(); AbstractMetaArgument* arg = func->arguments().first(); QCOMPARE(arg->type()->instantiations().count(), 1); } diff --git a/ApiExtractor/tests/testarrayargument.cpp b/ApiExtractor/tests/testarrayargument.cpp index 4209da0f3..5a99dcf98 100644 --- a/ApiExtractor/tests/testarrayargument.cpp +++ b/ApiExtractor/tests/testarrayargument.cpp @@ -47,8 +47,9 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByInteger() </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClass* classA = t.builder()->classes().findClass(QLatin1String("A")); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClass* classA = builder->classes().findClass(QLatin1String("A")); QVERIFY(classA); const AbstractMetaArgument* arg = classA->functions().last()->arguments().first(); @@ -72,8 +73,9 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValue() </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClass* classA = t.builder()->classes().findClass(QLatin1String("A")); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClass* classA = builder->classes().findClass(QLatin1String("A")); QVERIFY(classA); AbstractMetaEnum* someEnum = classA->findEnum(QLatin1String("SomeEnum")); @@ -102,11 +104,12 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValueFromGlobalEnu </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClass* classA = t.builder()->classes().findClass(QLatin1String("A")); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClass* classA = builder->classes().findClass(QLatin1String("A")); QVERIFY(classA); - AbstractMetaEnum* someEnum = t.builder()->globalEnums().first(); + AbstractMetaEnum* someEnum = builder->globalEnums().first(); QVERIFY(someEnum); AbstractMetaEnumValue* nvalues = 0; foreach (AbstractMetaEnumValue* enumValue, someEnum->values()) { diff --git a/ApiExtractor/tests/testcodeinjection.cpp b/ApiExtractor/tests/testcodeinjection.cpp index d000dbfa9..3ed8872bb 100644 --- a/ApiExtractor/tests/testcodeinjection.cpp +++ b/ApiExtractor/tests/testcodeinjection.cpp @@ -50,8 +50,9 @@ void TestCodeInjections::testReadFileUtf8() </value-type>\n\ <value-type name='A::B'/>\n\ </typesystem>\n"); - TestUtil t(cppCode, xmlCode.toLocal8Bit().constData()); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode.toLocal8Bit().constData())); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QCOMPARE(classA->typeEntry()->codeSnips().count(), 1); QString code = classA->typeEntry()->codeSnips().first().code(); @@ -73,9 +74,9 @@ void TestCodeInjections::testInjectWithValidApiVersion() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, true, "1.0"); - - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true, "1.0")); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QCOMPARE(classA->typeEntry()->codeSnips().count(), 1); } @@ -92,9 +93,10 @@ void TestCodeInjections::testInjectWithInvalidApiVersion() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, true, "0.1"); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true, "0.1")); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QCOMPARE(classA->typeEntry()->codeSnips().count(), 0); } diff --git a/ApiExtractor/tests/testcontainer.cpp b/ApiExtractor/tests/testcontainer.cpp index 47a298385..ccc6d6bfb 100644 --- a/ApiExtractor/tests/testcontainer.cpp +++ b/ApiExtractor/tests/testcontainer.cpp @@ -50,8 +50,9 @@ void TestContainer::testContainerType() <object-type name='A'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, true); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); //search for class A AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); @@ -80,8 +81,9 @@ void TestContainer::testListOfValueType() <value-type name='A'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, true); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 3); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); diff --git a/ApiExtractor/tests/testconversionoperator.cpp b/ApiExtractor/tests/testconversionoperator.cpp index 6d0b45195..da8d74792 100644 --- a/ApiExtractor/tests/testconversionoperator.cpp +++ b/ApiExtractor/tests/testconversionoperator.cpp @@ -50,8 +50,9 @@ void TestConversionOperator::testConversionOperator() <value-type name='C'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); AbstractMetaClass* classC = classes.findClass(QLatin1String("C")); @@ -87,8 +88,9 @@ void TestConversionOperator::testConversionOperatorOfDiscardedClass() <value-type name='A' />\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->externalConversionOperators().count(), 0); @@ -110,8 +112,9 @@ void TestConversionOperator::testRemovedConversionOperator() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); QVERIFY(classA); @@ -135,8 +138,9 @@ void TestConversionOperator::testConversionOperatorReturningReference() <value-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); QVERIFY(classA); @@ -164,8 +168,9 @@ void TestConversionOperator::testConversionOperatorReturningConstReference() <value-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); QVERIFY(classA); diff --git a/ApiExtractor/tests/testconversionruletag.cpp b/ApiExtractor/tests/testconversionruletag.cpp index c78d230ac..5a815b277 100644 --- a/ApiExtractor/tests/testconversionruletag.cpp +++ b/ApiExtractor/tests/testconversionruletag.cpp @@ -50,8 +50,9 @@ void TestConversionRuleTag::testConversionRuleTagWithFile() <conversion-rule file='") + file.fileName() + QLatin1String("'/>\n\ </value-type>\n\ </typesystem>\n"); - TestUtil t(cppCode, xmlCode.toLocal8Bit().data()); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode.toLocal8Bit().data())); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); const ComplexTypeEntry* typeEntry = classA->typeEntry(); @@ -97,7 +98,8 @@ void TestConversionRuleTag::testConversionRuleTagReplace() <value-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); TypeDatabase* typeDb = TypeDatabase::instance(); PrimitiveTypeEntry* typeA = typeDb->findPrimitiveType(QLatin1String("A")); QVERIFY(typeA); @@ -163,8 +165,9 @@ if (!TargetDateTimeAPI) TargetDateTime_IMPORT;\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClass* classA = t.builder()->classes().findClass(QLatin1String("Date")); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClass* classA = builder->classes().findClass(QLatin1String("Date")); QVERIFY(classA); CustomConversion* conversion = classA->typeEntry()->customConversion(); @@ -222,7 +225,8 @@ void TestConversionRuleTag::testConversionRuleTagWithInsertTemplate() "%OUT = %IN.createA();\n" "// TEMPLATE - target_to_native - END"; - TestUtil t(cppCode, xmlCode); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); TypeDatabase* typeDb = TypeDatabase::instance(); PrimitiveTypeEntry* typeA = typeDb->findPrimitiveType(QLatin1String("A")); QVERIFY(typeA); diff --git a/ApiExtractor/tests/testctorinformation.cpp b/ApiExtractor/tests/testctorinformation.cpp index 5ec295b01..582ec2794 100644 --- a/ApiExtractor/tests/testctorinformation.cpp +++ b/ApiExtractor/tests/testctorinformation.cpp @@ -43,8 +43,9 @@ void TestCtorInformation::testCtorIsPrivate() <object-type name='Subject'/>\n\ <value-type name='CtorLess'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 3); QCOMPARE(classes.findClass(QLatin1String("Control"))->hasNonPrivateConstructor(), true); QCOMPARE(classes.findClass(QLatin1String("Subject"))->hasNonPrivateConstructor(), false); @@ -62,8 +63,9 @@ void TestCtorInformation::testHasNonPrivateCtor() <object-type name='Base' generate='no'/>\n\ <object-type name='Derived'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* base = classes.findClass(QLatin1String("Base")); QCOMPARE(base->hasNonPrivateConstructor(), true); diff --git a/ApiExtractor/tests/testdroptypeentries.cpp b/ApiExtractor/tests/testdroptypeentries.cpp index 53b12690b..a64e95409 100644 --- a/ApiExtractor/tests/testdroptypeentries.cpp +++ b/ApiExtractor/tests/testdroptypeentries.cpp @@ -70,9 +70,10 @@ void TestDropTypeEntries::testDropEntries() droppedEntries << QLatin1String("Foo.ObjectB") << QLatin1String("Foo.NamespaceA.InnerClassA"); droppedEntries << QLatin1String("Foo.NamespaceB") << QLatin1String("Foo.EnumB") << QLatin1String("Foo.funcB()"); droppedEntries << QLatin1String("Foo.NamespaceA.InnerNamespaceA"); - TestUtil t(cppCode, xmlCode, false, 0, droppedEntries); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false, Q_NULLPTR, droppedEntries)); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QVERIFY(classes.findClass(QLatin1String("ValueA"))); QVERIFY(!classes.findClass(QLatin1String("ValueB"))); QVERIFY(classes.findClass(QLatin1String("ObjectA"))); @@ -81,7 +82,7 @@ void TestDropTypeEntries::testDropEntries() QVERIFY(!classes.findClass(QLatin1String("NamespaceA::InnerClassA"))); QVERIFY(!classes.findClass(QLatin1String("NamespaceB"))); - AbstractMetaEnumList globalEnums = t.builder()->globalEnums(); + AbstractMetaEnumList globalEnums = builder->globalEnums(); QCOMPARE(globalEnums.count(), 1); QCOMPARE(globalEnums.first()->name(), QLatin1String("EnumA")); @@ -92,9 +93,10 @@ void TestDropTypeEntries::testDropEntries() void TestDropTypeEntries::testDontDropEntries() { - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QVERIFY(classes.findClass(QLatin1String("ValueA"))); QVERIFY(classes.findClass(QLatin1String("ValueB"))); QVERIFY(classes.findClass(QLatin1String("ObjectA"))); @@ -103,7 +105,7 @@ void TestDropTypeEntries::testDontDropEntries() QVERIFY(classes.findClass(QLatin1String("NamespaceA::InnerClassA"))); QVERIFY(classes.findClass(QLatin1String("NamespaceB"))); - QCOMPARE(t.builder()->globalEnums().size(), 2); + QCOMPARE(builder->globalEnums().size(), 2); TypeDatabase* td = TypeDatabase::instance(); QVERIFY(td->findType(QLatin1String("funcA"))); @@ -127,14 +129,17 @@ static const char* xmlCode2 = "\ void TestDropTypeEntries::testDropEntryWithChildTags() { QStringList droppedEntries(QLatin1String("Foo.ValueA")); - TestUtil t(cppCode2, xmlCode2, false, 0, droppedEntries); - QVERIFY(!t.builder()->classes().findClass(QLatin1String("ValueA"))); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode2, xmlCode2, false, Q_NULLPTR, droppedEntries)); + QVERIFY(!builder.isNull()); + QVERIFY(!builder->classes().findClass(QLatin1String("ValueA"))); } + void TestDropTypeEntries::testDontDropEntryWithChildTags() { - TestUtil t(cppCode2, xmlCode2, false); - QVERIFY(t.builder()->classes().findClass(QLatin1String("ValueA"))); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode2, xmlCode2, false)); + QVERIFY(!builder.isNull()); + QVERIFY(builder->classes().findClass(QLatin1String("ValueA"))); } QTEST_APPLESS_MAIN(TestDropTypeEntries) diff --git a/ApiExtractor/tests/testdtorinformation.cpp b/ApiExtractor/tests/testdtorinformation.cpp index 0425a4dd7..c20cf24fb 100644 --- a/ApiExtractor/tests/testdtorinformation.cpp +++ b/ApiExtractor/tests/testdtorinformation.cpp @@ -37,8 +37,9 @@ void TestDtorInformation::testDtorIsPrivate() { const char* cppCode ="class Control { public: ~Control() {} }; class Subject { private: ~Subject() {} };"; const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"Control\"/><value-type name=\"Subject\"/></typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); QCOMPARE(classes.findClass(QLatin1String("Control"))->hasPrivateDestructor(), false); QCOMPARE(classes.findClass(QLatin1String("Subject"))->hasPrivateDestructor(), true); @@ -48,8 +49,9 @@ void TestDtorInformation::testDtorIsProtected() { const char* cppCode ="class Control { public: ~Control() {} }; class Subject { protected: ~Subject() {} };"; const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"Control\"/><value-type name=\"Subject\"/></typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); QCOMPARE(classes.findClass(QLatin1String("Control"))->hasProtectedDestructor(), false); QCOMPARE(classes.findClass(QLatin1String("Subject"))->hasProtectedDestructor(), true); @@ -59,8 +61,9 @@ void TestDtorInformation::testDtorIsVirtual() { const char* cppCode ="class Control { public: ~Control() {} }; class Subject { protected: virtual ~Subject() {} };"; const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"Control\"/><value-type name=\"Subject\"/></typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); QCOMPARE(classes.findClass(QLatin1String("Control"))->hasVirtualDestructor(), false); QCOMPARE(classes.findClass(QLatin1String("Subject"))->hasVirtualDestructor(), true); @@ -70,8 +73,9 @@ void TestDtorInformation::testClassWithVirtualDtorIsPolymorphic() { const char* cppCode ="class Control { public: virtual ~Control() {} }; class Subject { protected: virtual ~Subject() {} };"; const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"Control\"/><value-type name=\"Subject\"/></typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); QCOMPARE(classes.findClass(QLatin1String("Control"))->isPolymorphic(), true); QCOMPARE(classes.findClass(QLatin1String("Subject"))->isPolymorphic(), true); diff --git a/ApiExtractor/tests/testenum.cpp b/ApiExtractor/tests/testenum.cpp index c5b3fa322..3a90f8eff 100644 --- a/ApiExtractor/tests/testenum.cpp +++ b/ApiExtractor/tests/testenum.cpp @@ -51,16 +51,17 @@ void TestEnum::testEnumCppSignature() <function signature='func(A::ClassEnum)'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); - AbstractMetaEnumList globalEnums = t.builder()->globalEnums(); + AbstractMetaEnumList globalEnums = builder->globalEnums(); QCOMPARE(globalEnums.count(), 1); QCOMPARE(globalEnums.first()->name(), QLatin1String("GlobalEnum")); // enum as parameter of a function - AbstractMetaFunctionList functions = t.builder()->globalFunctions(); + AbstractMetaFunctionList functions = builder->globalFunctions(); QCOMPARE(functions.count(), 1); QCOMPARE(functions.first()->arguments().count(), 1); QCOMPARE(functions.first()->arguments().first()->type()->cppSignature(), QLatin1String("A::ClassEnum")); @@ -99,8 +100,9 @@ void TestEnum::testEnumWithApiVersion() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, true, "0.1"); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true, "0.1")); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); QCOMPARE(classes[0]->enums().count(), 1); } @@ -124,14 +126,15 @@ void TestEnum::testAnonymousEnum() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - AbstractMetaEnumList globalEnums = t.builder()->globalEnums(); + AbstractMetaEnumList globalEnums = builder->globalEnums(); QCOMPARE(globalEnums.count(), 1); QCOMPARE(globalEnums.first()->typeEntry()->qualifiedCppName(), QLatin1String("Global0")); QVERIFY(globalEnums.first()->isAnonymous()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); QCOMPARE(classes[0]->enums().count(), 2); @@ -177,9 +180,10 @@ void TestEnum::testGlobalEnums() <enum-type name='EnumB'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - AbstractMetaEnumList globalEnums = t.builder()->globalEnums(); + AbstractMetaEnumList globalEnums = builder->globalEnums(); QCOMPARE(globalEnums.count(), 2); AbstractMetaEnum* enumA = globalEnums.first(); @@ -224,9 +228,10 @@ void TestEnum::testEnumValueFromNeighbourEnum() </namespace-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); QCOMPARE(classes[0]->enums().count(), 2); @@ -281,9 +286,10 @@ void TestEnum::testEnumValueFromExpression() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - AbstractMetaClass* classA = t.builder()->classes().findClass(QLatin1String("A")); + AbstractMetaClass* classA = builder->classes().findClass(QLatin1String("A")); QVERIFY(classA); AbstractMetaEnum* enumA = classA->findEnum(QLatin1String("EnumA")); @@ -347,9 +353,10 @@ void TestEnum::testPrivateEnum() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - AbstractMetaClass* classA = t.builder()->classes().findClass(QLatin1String("A")); + AbstractMetaClass* classA = builder->classes().findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->enums().count(), 2); @@ -385,9 +392,10 @@ void TestEnum::testTypedefEnum() <enum-type name='EnumA'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - AbstractMetaEnumList globalEnums = t.builder()->globalEnums(); + AbstractMetaEnumList globalEnums = builder->globalEnums(); QEXPECT_FAIL("", "APIExtractor does not handle typedef enum correctly yet", Abort); QCOMPARE(globalEnums.count(), 1); diff --git a/ApiExtractor/tests/testextrainclude.cpp b/ApiExtractor/tests/testextrainclude.cpp index 0a84d18d5..e208a37c0 100644 --- a/ApiExtractor/tests/testextrainclude.cpp +++ b/ApiExtractor/tests/testextrainclude.cpp @@ -44,8 +44,9 @@ void TestExtraInclude::testClassExtraInclude() </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); const AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); @@ -66,8 +67,9 @@ void TestExtraInclude::testGlobalExtraIncludes() <value-type name='A'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QVERIFY(classes.findClass(QLatin1String("A"))); TypeDatabase* td = TypeDatabase::instance(); diff --git a/ApiExtractor/tests/testfunctiontag.cpp b/ApiExtractor/tests/testfunctiontag.cpp index 9d2e4c454..a29d740bf 100644 --- a/ApiExtractor/tests/testfunctiontag.cpp +++ b/ApiExtractor/tests/testfunctiontag.cpp @@ -41,11 +41,12 @@ void TestFunctionTag::testFunctionTagForSpecificSignature() <primitive-type name='float'/>\n\ <function signature='globalFunction(int)'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); const TypeEntry *func = TypeDatabase::instance()->findType(QLatin1String("globalFunction")); QVERIFY(func); - QCOMPARE(t.builder()->globalFunctions().size(), 1); + QCOMPARE(builder->globalFunctions().size(), 1); } void TestFunctionTag::testFunctionTagForAllSignatures() @@ -58,11 +59,12 @@ void TestFunctionTag::testFunctionTagForAllSignatures() <function signature='globalFunction(int)'/>\n\ <function signature='globalFunction(float)'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); const TypeEntry *func = TypeDatabase::instance()->findType(QLatin1String("globalFunction")); QVERIFY(func); - QCOMPARE(t.builder()->globalFunctions().size(), 2); + QCOMPARE(builder->globalFunctions().size(), 2); } void TestFunctionTag::testRenameGlobalFunction() @@ -72,13 +74,14 @@ void TestFunctionTag::testRenameGlobalFunction() <typesystem package='Foo'>\n\ <function signature='global_function_with_ugly_name()' rename='smooth'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); const TypeEntry *func = TypeDatabase::instance()->findType(QLatin1String("global_function_with_ugly_name")); QVERIFY(func); - QCOMPARE(t.builder()->globalFunctions().size(), 1); - const AbstractMetaFunction* metaFunc = t.builder()->globalFunctions().first(); + QCOMPARE(builder->globalFunctions().size(), 1); + const AbstractMetaFunction* metaFunc = builder->globalFunctions().first(); QVERIFY(metaFunc); QCOMPARE(metaFunc->modifications().size(), 1); diff --git a/ApiExtractor/tests/testimplicitconversions.cpp b/ApiExtractor/tests/testimplicitconversions.cpp index fa65f215a..fc97a6038 100644 --- a/ApiExtractor/tests/testimplicitconversions.cpp +++ b/ApiExtractor/tests/testimplicitconversions.cpp @@ -50,8 +50,9 @@ void TestImplicitConversions::testWithPrivateCtors() <value-type name='B'/>\n\ <value-type name='C'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 3); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); @@ -79,8 +80,9 @@ void TestImplicitConversions::testWithModifiedVisibility() </value-type>\n\ <value-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); @@ -111,8 +113,9 @@ void TestImplicitConversions::testWithAddedCtor() </value-type>\n\ <value-type name='C'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 3); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); @@ -137,8 +140,9 @@ void TestImplicitConversions::testWithExternalConversionOperator() <value-type name='A'/>\n\ <value-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); diff --git a/ApiExtractor/tests/testinserttemplate.cpp b/ApiExtractor/tests/testinserttemplate.cpp index ab849fa02..3205ceb47 100644 --- a/ApiExtractor/tests/testinserttemplate.cpp +++ b/ApiExtractor/tests/testinserttemplate.cpp @@ -46,8 +46,9 @@ void TestInsertTemplate::testInsertTemplateOnClassInjectCode() </inject-code>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); @@ -68,8 +69,9 @@ void TestInsertTemplate::testInsertTemplateOnModuleInjectCode() <insert-template name='code_template'/>\n\ </inject-code>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QVERIFY(classes.isEmpty()); TypeEntry* module = TypeDatabase::instance()->findType(QLatin1String("Foo")); @@ -88,8 +90,9 @@ void TestInsertTemplate::testInvalidTypeSystemTemplate() <insert-template name='this_code_template_does_not_exists'/>\n\ </inject-code>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QVERIFY(classes.isEmpty()); TypeEntry* module = TypeDatabase::instance()->findType(QLatin1String("Foo")); @@ -112,8 +115,9 @@ void TestInsertTemplate::testValidAndInvalidTypeSystemTemplate() <insert-template name='code_template'/>\n\ </inject-code>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QVERIFY(classes.isEmpty()); TypeEntry* module = TypeDatabase::instance()->findType(QLatin1String("Foo")); diff --git a/ApiExtractor/tests/testmodifydocumentation.cpp b/ApiExtractor/tests/testmodifydocumentation.cpp index 9ca63e2d4..ab68082e0 100644 --- a/ApiExtractor/tests/testmodifydocumentation.cpp +++ b/ApiExtractor/tests/testmodifydocumentation.cpp @@ -48,9 +48,9 @@ void TestModifyDocumentation::testModifyDocumentation() </modify-documentation>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - - AbstractMetaClass* classA = t.builder()->classes().findClass(QLatin1String("A")); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClass *classA = builder->classes().findClass(QLatin1String("A")); QVERIFY(classA); DocModificationList docMods = classA->typeEntry()->docModifications(); QCOMPARE(docMods.count(), 1); diff --git a/ApiExtractor/tests/testmodifyfunction.cpp b/ApiExtractor/tests/testmodifyfunction.cpp index 8f1dc0208..7e61e56e7 100644 --- a/ApiExtractor/tests/testmodifyfunction.cpp +++ b/ApiExtractor/tests/testmodifyfunction.cpp @@ -49,8 +49,9 @@ void TestModifyFunction::testRenameArgument() </modify-function>\n\ </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); const AbstractMetaFunction* func = classA->findFunction(QLatin1String("method")); Q_ASSERT(func); @@ -76,8 +77,9 @@ void TestModifyFunction::testOwnershipTransfer() </modify-function>\n\ </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); const AbstractMetaFunction* func = classB->findFunction(QLatin1String("method")); @@ -122,8 +124,9 @@ void TestModifyFunction::invalidateAfterUse() </object-type>\n\ <object-type name='E' />\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false, "0.1"); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false, "0.1")); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); const AbstractMetaFunction* func = classB->findFunction(QLatin1String("call")); QCOMPARE(func->modifications().size(), 1); @@ -193,8 +196,9 @@ void TestModifyFunction::testWithApiVersion() </modify-function>\n\ </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false, "0.1"); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false, "0.1")); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); const AbstractMetaFunction* func = classB->findFunction(QLatin1String("method")); @@ -222,8 +226,9 @@ void TestModifyFunction::testGlobalFunctionModification() </function>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - QCOMPARE(t.builder()->globalFunctions().size(), 1); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + QCOMPARE(builder->globalFunctions().size(), 1); FunctionModificationList mods = TypeDatabase::instance()->functionModifications(QLatin1String("function(A*)")); QCOMPARE(mods.count(), 1); @@ -232,7 +237,7 @@ void TestModifyFunction::testGlobalFunctionModification() ArgumentModification argMod = argMods.first(); QCOMPARE(argMod.replacedDefaultExpression, QLatin1String("A()")); - const AbstractMetaFunction* func = t.builder()->globalFunctions().first(); + const AbstractMetaFunction* func = builder->globalFunctions().first(); QVERIFY(func); QCOMPARE(func->arguments().count(), 1); const AbstractMetaArgument* arg = func->arguments().first(); diff --git a/ApiExtractor/tests/testmultipleinheritance.cpp b/ApiExtractor/tests/testmultipleinheritance.cpp index 30c8d9795..01c05348d 100644 --- a/ApiExtractor/tests/testmultipleinheritance.cpp +++ b/ApiExtractor/tests/testmultipleinheritance.cpp @@ -54,8 +54,9 @@ void TestMultipleInheritance::testVirtualClass() <object-type name='D' />\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 4); AbstractMetaClass* classD = classes.findClass(QLatin1String("D")); diff --git a/ApiExtractor/tests/testnamespace.cpp b/ApiExtractor/tests/testnamespace.cpp index ec35c3553..1a691e632 100644 --- a/ApiExtractor/tests/testnamespace.cpp +++ b/ApiExtractor/tests/testnamespace.cpp @@ -49,8 +49,9 @@ void NamespaceTest::testNamespaceMembers() <enum-type name='Option' />\n\ </namespace-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* ns = classes.findClass(QLatin1String("Namespace")); QVERIFY(ns); const AbstractMetaEnum* metaEnum = ns->findEnum(QLatin1String("Option")); @@ -78,8 +79,9 @@ void NamespaceTest::testNamespaceInnerClassMembers() </namespace-type>\n\ </namespace-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* ons = classes.findClass(QLatin1String("OuterNamespace")); QVERIFY(ons); AbstractMetaClass* ins = classes.findClass(QLatin1String("OuterNamespace::InnerNamespace")); diff --git a/ApiExtractor/tests/testnestedtypes.cpp b/ApiExtractor/tests/testnestedtypes.cpp index 830a759b7..6dbdb3a71 100644 --- a/ApiExtractor/tests/testnestedtypes.cpp +++ b/ApiExtractor/tests/testnestedtypes.cpp @@ -57,8 +57,9 @@ void TestNestedTypes::testNestedTypesModifications() </namespace-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* ons = classes.findClass(QLatin1String("OuterNamespace")); QVERIFY(ons); @@ -104,8 +105,9 @@ void TestNestedTypes::testDuplicationOfNestedTypes() </namespace-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 2); AbstractMetaClass* nspace = classes.findClass(QLatin1String("Namespace")); QVERIFY(nspace); diff --git a/ApiExtractor/tests/testnumericaltypedef.cpp b/ApiExtractor/tests/testnumericaltypedef.cpp index c37820628..3491d5cb4 100644 --- a/ApiExtractor/tests/testnumericaltypedef.cpp +++ b/ApiExtractor/tests/testnumericaltypedef.cpp @@ -45,12 +45,13 @@ void TestNumericalTypedef::testNumericalTypedef() <function signature='funcDouble(double)'/>\n\ <function signature='funcReal(real)'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - QCOMPARE(t.builder()->globalFunctions().size(), 2); - const AbstractMetaFunction* funcDouble = t.builder()->globalFunctions().first(); + QCOMPARE(builder->globalFunctions().size(), 2); + const AbstractMetaFunction* funcDouble = builder->globalFunctions().first(); QVERIFY(funcDouble); - const AbstractMetaFunction* funcReal = t.builder()->globalFunctions().last(); + const AbstractMetaFunction* funcReal = builder->globalFunctions().last(); QVERIFY(funcReal); if (funcDouble->name() == QLatin1String("funcReal")) @@ -86,12 +87,13 @@ void TestNumericalTypedef::testUnsignedNumericalTypedef() <function signature='funcUnsignedShort(unsigned short)'/>\n\ <function signature='funcUShort(ushort)'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - QCOMPARE(t.builder()->globalFunctions().size(), 2); - const AbstractMetaFunction* funcUnsignedShort = t.builder()->globalFunctions().first(); + QCOMPARE(builder->globalFunctions().size(), 2); + const AbstractMetaFunction* funcUnsignedShort = builder->globalFunctions().first(); QVERIFY(funcUnsignedShort); - const AbstractMetaFunction* funcUShort = t.builder()->globalFunctions().last(); + const AbstractMetaFunction* funcUShort = builder->globalFunctions().last(); QVERIFY(funcUShort); if (funcUnsignedShort->name() == QLatin1String("funcUShort")) diff --git a/ApiExtractor/tests/testprimitivetypetag.cpp b/ApiExtractor/tests/testprimitivetypetag.cpp index 099cd7684..c2e176740 100644 --- a/ApiExtractor/tests/testprimitivetypetag.cpp +++ b/ApiExtractor/tests/testprimitivetypetag.cpp @@ -42,9 +42,10 @@ void TestPrimitiveTypeTag::testPrimitiveTypeDefaultConstructor() <primitive-type name='A' default-constructor='A()'/>\n\ <object-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); - AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); QVERIFY(classB); diff --git a/ApiExtractor/tests/testrefcounttag.cpp b/ApiExtractor/tests/testrefcounttag.cpp index 0d7cce7d8..15f8dde98 100644 --- a/ApiExtractor/tests/testrefcounttag.cpp +++ b/ApiExtractor/tests/testrefcounttag.cpp @@ -50,8 +50,9 @@ void TestRefCountTag::testReferenceCountTag() </modify-function>\n\ </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); const AbstractMetaFunction* func = classB->findFunction(QLatin1String("keepObject")); QVERIFY(func); @@ -81,8 +82,9 @@ void TestRefCountTag::testWithApiVersion() </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false, "0.1"); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false, "0.1")); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); const AbstractMetaFunction* func = classB->findFunction(QLatin1String("keepObject")); QVERIFY(func); diff --git a/ApiExtractor/tests/testreferencetopointer.cpp b/ApiExtractor/tests/testreferencetopointer.cpp index 549643b29..1f47f0463 100644 --- a/ApiExtractor/tests/testreferencetopointer.cpp +++ b/ApiExtractor/tests/testreferencetopointer.cpp @@ -44,8 +44,9 @@ void TestReferenceToPointer::testReferenceToPointerArgument() <object-type name='A'/>\n\ <object-type name='B'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); QVERIFY(classB); const AbstractMetaFunction* func = classB->findFunction(QLatin1String("dummy")); diff --git a/ApiExtractor/tests/testremovefield.cpp b/ApiExtractor/tests/testremovefield.cpp index c59959f0a..f5cc4611e 100644 --- a/ApiExtractor/tests/testremovefield.cpp +++ b/ApiExtractor/tests/testremovefield.cpp @@ -46,8 +46,9 @@ void TestRemoveField::testRemoveField() <modify-field name='fieldB' remove='all'/>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->fields().size(), 1); diff --git a/ApiExtractor/tests/testremoveimplconv.cpp b/ApiExtractor/tests/testremoveimplconv.cpp index 8cd9aa05c..83804c6f3 100644 --- a/ApiExtractor/tests/testremoveimplconv.cpp +++ b/ApiExtractor/tests/testremoveimplconv.cpp @@ -51,8 +51,9 @@ void TestRemoveImplConv::testRemoveImplConv() <modify-function signature='C(const A&)' remove='all'/>\n\ </value-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 3); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); diff --git a/ApiExtractor/tests/testremoveoperatormethod.cpp b/ApiExtractor/tests/testremoveoperatormethod.cpp index e579dc8b3..6fcc80278 100644 --- a/ApiExtractor/tests/testremoveoperatormethod.cpp +++ b/ApiExtractor/tests/testremoveoperatormethod.cpp @@ -85,8 +85,9 @@ void TestRemoveOperatorMethod::testRemoveOperatorMethod() <modify-function signature='operator>>(String&)' remove='all'/>\n\ </object-type>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->functions().size(), 14); diff --git a/ApiExtractor/tests/testresolvetype.cpp b/ApiExtractor/tests/testresolvetype.cpp index 13c5d4c8d..ea1db9ffd 100644 --- a/ApiExtractor/tests/testresolvetype.cpp +++ b/ApiExtractor/tests/testresolvetype.cpp @@ -51,8 +51,9 @@ void TestResolveType::testResolveReturnTypeFromParentScope() <value-type name='A::B::C'/>\n\ <value-type name='A::D'/>\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classD = classes.findClass(QLatin1String("A::D")); QVERIFY(classD); const AbstractMetaFunction* meth = classD->findFunction(QLatin1String("method")); diff --git a/ApiExtractor/tests/testreverseoperators.cpp b/ApiExtractor/tests/testreverseoperators.cpp index 6cdcfe754..fc7b408a4 100644 --- a/ApiExtractor/tests/testreverseoperators.cpp +++ b/ApiExtractor/tests/testreverseoperators.cpp @@ -44,8 +44,9 @@ void TestReverseOperators::testReverseSum() <value-type name='A' />\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->functions().count(), 4); @@ -87,8 +88,9 @@ void TestReverseOperators::testReverseSumWithAmbiguity() <value-type name='B' />\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); QCOMPARE(classA->functions().count(), 6); diff --git a/ApiExtractor/tests/testtemplates.cpp b/ApiExtractor/tests/testtemplates.cpp index 73bf6407c..715d3647b 100644 --- a/ApiExtractor/tests/testtemplates.cpp +++ b/ApiExtractor/tests/testtemplates.cpp @@ -65,8 +65,9 @@ void TestTemplates::testTemplateWithNamespace() <value-type name='Internet::Bookmarks'/>\n\ </typesystem>").arg(file.fileName()); - TestUtil t(cppCode, qPrintable(xmlCode1), false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, qPrintable(xmlCode1), false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("Bookmarks")); QVERIFY(classB); @@ -99,8 +100,9 @@ void TestTemplates::testTemplateOnContainers() <object-type name='Namespace::B'/>\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); QVERIFY(classB); @@ -135,8 +137,9 @@ void TestTemplates::testTemplateValueAsArgument() </typesystem>\n\ "; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaFunctionList globalFuncs = t.builder()->globalFunctions(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaFunctionList globalFuncs = builder->globalFunctions(); QCOMPARE(globalFuncs.count(), 1); AbstractMetaFunction* func = globalFuncs.first(); @@ -159,8 +162,9 @@ void TestTemplates::testTemplatePointerAsArgument() </typesystem>\n\ "; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaFunctionList globalFuncs = t.builder()->globalFunctions(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaFunctionList globalFuncs = builder->globalFunctions(); QCOMPARE(globalFuncs.count(), 1); AbstractMetaFunction* func = globalFuncs.first(); @@ -183,8 +187,9 @@ void TestTemplates::testTemplateReferenceAsArgument() </typesystem>\n\ "; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaFunctionList globalFuncs = t.builder()->globalFunctions(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaFunctionList globalFuncs = builder->globalFunctions(); QCOMPARE(globalFuncs.count(), 1); AbstractMetaFunction* func = globalFuncs.first(); @@ -208,8 +213,9 @@ void TestTemplates::testTemplateParameterFixup() <value-type name='List::Iterator'/>\n\ </typesystem>\n"; - TestUtil t(cppCode, xmlCode, false); - const AbstractMetaClassList templates = t.builder()->templates(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + const AbstractMetaClassList templates = builder->templates(); QCOMPARE(templates.count(), 1); const AbstractMetaClass *list = templates.first(); @@ -248,9 +254,10 @@ void TestTemplates::testInheritanceFromContainterTemplate() </typesystem>\n\ "; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); - AbstractMetaClassList templates = t.builder()->templates(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); + AbstractMetaClassList templates = builder->templates(); QCOMPARE(classes.count(), 2); QCOMPARE(templates.count(), 1); @@ -283,8 +290,9 @@ void TestTemplates::testTemplateInheritanceMixedWithForwardDeclaration() <value-type name='Future' generate='no'/>\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("B")); QVERIFY(classB); @@ -319,8 +327,9 @@ void TestTemplates::testTemplateInheritanceMixedWithNamespaceAndForwardDeclarati <value-type name='Namespace::Future' generate='no'/>\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classB = classes.findClass(QLatin1String("Namespace::B")); QVERIFY(classB); @@ -355,8 +364,9 @@ void TestTemplates::testTypedefOfInstantiationOfTemplateClass() </typesystem>\n\ "; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 3); const AbstractMetaClass* base = classes.findClass(QLatin1String("BaseTemplateClass")); @@ -403,8 +413,9 @@ void TestTemplates::testContainerTypeIncompleteArgument() <value-type name='IntVector'/>\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode, true); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); QCOMPARE(classes.count(), 1); AbstractMetaClass* vector = classes.findClass(QLatin1String("IntVector")); diff --git a/ApiExtractor/tests/testtyperevision.cpp b/ApiExtractor/tests/testtyperevision.cpp index 4c4097ac8..fc67917be 100644 --- a/ApiExtractor/tests/testtyperevision.cpp +++ b/ApiExtractor/tests/testtyperevision.cpp @@ -45,8 +45,9 @@ void TestTypeRevision::testRevisionAttr() " <enum-type name=\"Rev_5\" revision=\"5\" flags=\"Flag_5\" />" "</object-type>" "</typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* rev0 = classes.findClass(QLatin1String("Rev_0")); QCOMPARE(getTypeRevision(rev0->typeEntry()), 0); diff --git a/ApiExtractor/tests/testutil.h b/ApiExtractor/tests/testutil.h index ef712e9dc..81c35bdf6 100644 --- a/ApiExtractor/tests/testutil.h +++ b/ApiExtractor/tests/testutil.h @@ -33,16 +33,14 @@ #include "reporthandler.h" #include "typedatabase.h" -class TestUtil +namespace TestUtil { -public: - TestUtil(const char* cppCode, const char* xmlCode, - bool silent = true, const char* apiVersion = 0, - QStringList dropTypeEntries = QStringList()) - : m_builder(0) + static AbstractMetaBuilder *parse(const char *cppCode, const char *xmlCode, + bool silent = true, + const char *apiVersion = Q_NULLPTR, + const QStringList &dropTypeEntries = QStringList()) { ReportHandler::setSilent(silent); - m_builder = new AbstractMetaBuilder; TypeDatabase* td = TypeDatabase::instance(true); if (apiVersion) td->setApiVersion(QLatin1String("*"), apiVersion); @@ -54,24 +52,13 @@ public: buffer.close(); // parse C++ code buffer.setData(cppCode); - bool res = m_builder->build(&buffer); - Q_UNUSED(res); - Q_ASSERT(res); + AbstractMetaBuilder *builder = new AbstractMetaBuilder; + if (!builder->build(&buffer)) { + delete builder; + return Q_NULLPTR; + } + return builder; } - - ~TestUtil() - { - delete m_builder; - m_builder = 0; - } - - AbstractMetaBuilder* builder() - { - return m_builder; - } - -private: - AbstractMetaBuilder* m_builder; -}; +} // namespace TestUtil #endif diff --git a/ApiExtractor/tests/testvaluetypedefaultctortag.cpp b/ApiExtractor/tests/testvaluetypedefaultctortag.cpp index 728aed2de..deadd1435 100644 --- a/ApiExtractor/tests/testvaluetypedefaultctortag.cpp +++ b/ApiExtractor/tests/testvaluetypedefaultctortag.cpp @@ -46,8 +46,10 @@ void TestValueTypeDefaultCtorTag::testValueTypeDefaultCtorTagArgument() <value-type name='A' default-constructor='A(0, 0)' />\n\ <value-type name='B' />\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode, false); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false)); + QVERIFY(!builder.isNull()); + + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); diff --git a/ApiExtractor/tests/testvoidarg.cpp b/ApiExtractor/tests/testvoidarg.cpp index 5b5de5c23..a13cab7bd 100644 --- a/ApiExtractor/tests/testvoidarg.cpp +++ b/ApiExtractor/tests/testvoidarg.cpp @@ -39,8 +39,9 @@ void TestVoidArg::testVoidParsedFunction() <typesystem package=\"Foo\">\n\ <value-type name='A'/>\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); const AbstractMetaFunction* addedFunc = classA->findFunction(QLatin1String("a")); @@ -56,8 +57,9 @@ void TestVoidArg::testVoidAddedFunction() <add-function signature=\"a(void)\"/>\n\ </value-type>\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); const AbstractMetaFunction* addedFunc = classA->findFunction(QLatin1String("a")); @@ -72,8 +74,9 @@ void TestVoidArg::testVoidPointerParsedFunction() <typesystem package=\"Foo\">\n\ <value-type name='A' />\n\ </typesystem>"; - TestUtil t(cppCode, xmlCode); - AbstractMetaClassList classes = t.builder()->classes(); + QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode)); + QVERIFY(!builder.isNull()); + AbstractMetaClassList classes = builder->classes(); AbstractMetaClass* classA = classes.findClass(QLatin1String("A")); QVERIFY(classA); const AbstractMetaFunction* addedFunc = classA->findFunction(QLatin1String("a")); |