aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/testabstractmetaclass.cpp32
-rw-r--r--tests/testabstractmetaclass.h1
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/testabstractmetaclass.cpp b/tests/testabstractmetaclass.cpp
index f412b19ca..11e17d989 100644
--- a/tests/testabstractmetaclass.cpp
+++ b/tests/testabstractmetaclass.cpp
@@ -408,6 +408,38 @@ void TestAbstractMetaClass::testObjectTypesMustNotHaveCopyConstructors()
QCOMPARE(ctors.first()->minimalSignature(), QString("A()"));
}
+void TestAbstractMetaClass::testIsPolymorphic()
+{
+ const char* cppCode = "\
+ class A\
+ {\
+ public:\
+ A();\
+ inline bool abc() const {}\
+ };\
+ \
+ class B : public A\
+ {\
+ public:\
+ B();\
+ inline bool abc() const {}\
+ };";
+ const char* xmlCode = "\
+ <typesystem package='Foo'>\
+ <primitive-type name='bool' />\
+ <value-type name='A' />\
+ <value-type name='B' />\
+ </typesystem>";
+
+ TestUtil t(cppCode, xmlCode);
+ AbstractMetaClassList classes = t.builder()->classes();
+ QCOMPARE(classes.count(), 2);
+ AbstractMetaClass* b = classes.findClass("A");
+
+ QVERIFY(!b->isPolymorphic());
+ AbstractMetaClass* a = classes.findClass("B");
+ QVERIFY(!a->isPolymorphic());
+}
QTEST_APPLESS_MAIN(TestAbstractMetaClass)
diff --git a/tests/testabstractmetaclass.h b/tests/testabstractmetaclass.h
index 03b5721a3..d725c46ed 100644
--- a/tests/testabstractmetaclass.h
+++ b/tests/testabstractmetaclass.h
@@ -42,6 +42,7 @@ private slots:
void testClassInheritedDefaultConstructors();
void testAbstractClassDefaultConstructors();
void testObjectTypesMustNotHaveCopyConstructors();
+ void testIsPolymorphic();
};
#endif // TESTABSTRACTMETACLASS_H