diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-03-13 12:58:35 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-03-13 13:39:19 +0000 |
commit | 10991bf26e1cf938e5df1c3c1cec5adf44b3b5eb (patch) | |
tree | d3280095acece0f43aad94193507bda6008af9e2 | |
parent | 9bad5b23dd1ed7274273fd8ad882c3f6acc6ccd8 (diff) |
Refactor TestUtil of ApiExtractor
Change the class TestUtil to a namespace containing a free function
returning the AbstractMetaBuilder instance on success. Use QScopedPointer
in the tests and add checks.
This makes it possible to detect parse errors which would previously only
trigger an assert.
Change-Id: Iea3a8fb62515602c76b10eab4889400af5b26b34
Reviewed-by: Christian Tismer <tismer@stackless.com>
35 files changed, 395 insertions, 287 deletions
diff --git a/ApiExtractor/tests/testabstractmetaclass.cpp b/ApiExtractor/tests/testabstractmetaclass.cpp index f9c7cfe..7fc5c1f 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 dfe13e0..735ccc2 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 6130658..66ae055 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 4209da0..5a99dcf 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 d000dbf..3ed8872 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 47a2983..ccc6d6b 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 6d0b451..da8d747 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 c78d230..5a815b2 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 5ec295b..582ec27 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 53b1269..a64e954 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 0425a4d..c20cf24 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 c5b3fa3..3a90f8e 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 0a84d18..e208a37 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 9d2e4c4..a29d740 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 fa65f21..fc97a60 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 ab849fa..3205ceb 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 9ca63e2..ab68082 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 8f1dc02..7e61e56 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 30c8d97..01c0534 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 ec35c35..1a691e6 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 830a759..6dbdb3a 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 c378206..3491d5c 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 099cd76..c2e1767 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 0d7cce7..15f8dde 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 549643b..1f47f04 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 c59959f..f5cc461 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 8cd9aa0..83804c6 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 e579dc8..6fcc802 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 13c5d4c..ea1db9f 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 6cdcfe7..fc7b408 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 73bf640..715d364 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 4c4097a..fc67917 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 ef712e9..81c35bd 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 728aed2..deadd14 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 5b5de5c..a13cab7 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")); |