diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-12-23 15:10:17 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:21 -0300 |
commit | 4889efc199243af54cf71accffb3f9554cba933d (patch) | |
tree | c08e9b0b65074868454f09807c51455a582a5410 /tests/testimplicitconversions.cpp | |
parent | ab94961a639cc7b364fcb1e3f68531792c312990 (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.cpp | 42 |
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&)'>\ <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&)' />\ </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" - |