aboutsummaryrefslogtreecommitdiffstats
path: root/tests/testimplicitconversions.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-12-23 15:10:17 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:21 -0300
commit4889efc199243af54cf71accffb3f9554cba933d (patch)
treec08e9b0b65074868454f09807c51455a582a5410 /tests/testimplicitconversions.cpp
parentab94961a639cc7b364fcb1e3f68531792c312990 (diff)
Added the "<custom-type>" tag, and better requirements for function signatures.sb-0.10.10
Trying to find a non-qualified (without scope information) class, found in a function signature or return type, was a bad idea for it makes the parsing awfully slow when dealing with huge libraries. If the user writes a type in short form in a function signature (e.g. "SomeClass", instead of "Namespace::SomeClass"), APIExtractor will exit with a message indicating the error and the possible candidates for the type. The "<custom-type>" tag is for types of the target language ("PyObject" in Python, for instance) and will be handled by the generator. Reviewed by Hugo Parente <hugo.lima@openbossa.org> Reviewed by Paulo Alcantara <pcacjr@gmail.com>
Diffstat (limited to 'tests/testimplicitconversions.cpp')
-rw-r--r--tests/testimplicitconversions.cpp42
1 files changed, 19 insertions, 23 deletions
diff --git a/tests/testimplicitconversions.cpp b/tests/testimplicitconversions.cpp
index 86032acaf..4bc4d73fc 100644
--- a/tests/testimplicitconversions.cpp
+++ b/tests/testimplicitconversions.cpp
@@ -30,22 +30,20 @@ void TestImplicitConversions::testWithPrivateCtors()
const char* cppCode ="\
class B;\
class C;\
- \
class A {\
A(const B&);\
public:\
A(const C&);\
};\
- \
class B {};\
class C {};\
";
const char* xmlCode = "\
- <typesystem package=\"Foo\"> \
- <value-type name=\"A\"/> \
- <value-type name=\"B\"/> \
- <value-type name=\"C\"/> \
- </typesystem>";
+ <typesystem package='Foo'> \
+ <value-type name='A'/> \
+ <value-type name='B'/> \
+ <value-type name='C'/> \
+ </typesystem>";
TestUtil t(cppCode, xmlCode);
AbstractMetaClassList classes = t.builder()->classes();
QCOMPARE(classes.count(), 3);
@@ -65,18 +63,17 @@ void TestImplicitConversions::testWithModifiedVisibility()
public:\
A(const B&);\
};\
- \
class B {};\
";
const char* xmlCode = "\
- <typesystem package=\"Foo\">\
- <value-type name=\"A\">\
+ <typesystem package='Foo'>\
+ <value-type name='A'>\
<modify-function signature='A(const B&amp;)'>\
<access modifier='private' />\
</modify-function>\
</value-type>\
- <value-type name=\"B\"/>\
- </typesystem>";
+ <value-type name='B'/>\
+ </typesystem>";
TestUtil t(cppCode, xmlCode);
AbstractMetaClassList classes = t.builder()->classes();
QCOMPARE(classes.count(), 2);
@@ -96,20 +93,20 @@ void TestImplicitConversions::testWithAddedCtor()
public:\
A(const B&);\
};\
- \
class B {};\
class C {};\
";
const char* xmlCode = "\
- <typesystem package=\"Foo\">\
- <value-type name=\"A\">\
+ <typesystem package='Foo'>\
+ <custom-type name='TARGETLANGTYPE' />\
+ <value-type name='A'>\
<add-function signature='A(const C&amp;)' />\
</value-type>\
- <value-type name=\"B\">\
+ <value-type name='B'>\
<add-function signature='B(TARGETLANGTYPE*)' />\
</value-type>\
- <value-type name=\"C\"/>\
- </typesystem>";
+ <value-type name='C'/>\
+ </typesystem>";
TestUtil t(cppCode, xmlCode);
AbstractMetaClassList classes = t.builder()->classes();
QCOMPARE(classes.count(), 3);
@@ -133,10 +130,10 @@ void TestImplicitConversions::testWithExternalConversionOperator()
};\
";
const char* xmlCode = "\
- <typesystem package=\"Foo\">\
- <value-type name=\"A\"/>\
- <value-type name=\"B\"/>\
- </typesystem>";
+ <typesystem package='Foo'>\
+ <value-type name='A'/>\
+ <value-type name='B'/>\
+ </typesystem>";
TestUtil t(cppCode, xmlCode);
AbstractMetaClassList classes = t.builder()->classes();
QCOMPARE(classes.count(), 2);
@@ -159,4 +156,3 @@ void TestImplicitConversions::testWithExternalConversionOperator()
QTEST_APPLESS_MAIN(TestImplicitConversions)
#include "testimplicitconversions.moc"
-