summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/kernel/qguimetatype
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@nokia.com>2011-12-13 12:07:47 +0100
committerQt by Nokia <qt-info@nokia.com>2011-12-22 13:20:40 +0100
commit56f154c747a6623fc8249265262160ac0adbe4cd (patch)
tree5b3a86073db010820b745d0ca8a9284997a71e7b /tests/auto/gui/kernel/qguimetatype
parentd868c9945a188d6ad22e0b7d6d24ac7fca00ab4e (diff)
Allow QMetaType to register information about movability
We need that information to perform some optimizations in QVariant. Change-Id: Id9a1716e49e4cedd17cd09a32fea4ff003ef61f2 Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Diffstat (limited to 'tests/auto/gui/kernel/qguimetatype')
-rw-r--r--tests/auto/gui/kernel/qguimetatype/tst_qguimetatype.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/gui/kernel/qguimetatype/tst_qguimetatype.cpp b/tests/auto/gui/kernel/qguimetatype/tst_qguimetatype.cpp
index 98314a9336..79eebbc828 100644
--- a/tests/auto/gui/kernel/qguimetatype/tst_qguimetatype.cpp
+++ b/tests/auto/gui/kernel/qguimetatype/tst_qguimetatype.cpp
@@ -56,6 +56,8 @@ private slots:
void createCopy();
void sizeOf_data();
void sizeOf();
+ void flags_data();
+ void flags();
void construct_data();
void construct();
void constructCopy_data();
@@ -320,6 +322,30 @@ struct TypeAlignment
#endif
};
+void tst_QGuiMetaType::flags_data()
+{
+ QTest::addColumn<int>("type");
+ QTest::addColumn<bool>("isMovable");
+ QTest::addColumn<bool>("isComplex");
+
+#define ADD_METATYPE_TEST_ROW(MetaTypeName, MetaTypeId, RealType) \
+ QTest::newRow(#RealType) << MetaTypeId << bool(!QTypeInfo<RealType>::isStatic) << bool(QTypeInfo<RealType>::isComplex);
+QT_FOR_EACH_STATIC_GUI_CLASS(ADD_METATYPE_TEST_ROW)
+#undef ADD_METATYPE_TEST_ROW
+}
+
+void tst_QGuiMetaType::flags()
+{
+ QFETCH(int, type);
+ QFETCH(bool, isMovable);
+ QFETCH(bool, isComplex);
+
+ QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::NeedsConstruction), isComplex);
+ QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::NeedsDestruction), isComplex);
+ QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::MovableType), isMovable);
+}
+
+
void tst_QGuiMetaType::construct_data()
{
create_data();