diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-04-22 09:04:29 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-04-22 09:25:54 +0200 |
commit | aed5a7168354c6ae47687d20b4bd3f0adcc14f8e (patch) | |
tree | d2060479a7c12fdba8c1955e5d363754feffabb8 /tests/auto/corelib/kernel | |
parent | d3d10cf23d61f4a011f1a7e9abdee1a92717e80f (diff) | |
parent | 628fa13ea4d6ff0e2e2ee76c9adfc78676de3c59 (diff) |
Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
src/corelib/statemachine/qstatemachine.cpp
src/corelib/statemachine/qstatemachine_p.h
src/gui/painting/qdrawhelper.cpp
src/plugins/platforms/xcb/qxcbnativeinterface.cpp
src/plugins/platforms/xcb/qxcbwindow.cpp
src/plugins/platforms/xcb/qxcbwindow.h
src/testlib/qtestblacklist.cpp
src/tools/qdoc/node.cpp
src/tools/qdoc/node.h
tests/auto/gui/painting/qcolor/tst_qcolor.cpp
Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
Diffstat (limited to 'tests/auto/corelib/kernel')
-rw-r--r-- | tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index 88b1bebb29..b3333c6d68 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -1254,6 +1254,54 @@ void tst_QMetaType::registerType() QCOMPARE(qRegisterMetaType<MyFoo>("MyFoo"), fooId); QCOMPARE(QMetaType::type("MyFoo"), fooId); + + // cannot unregister built-in types + QVERIFY(!QMetaType::unregisterType(QMetaType::QString)); + QCOMPARE(QMetaType::type("QString"), int(QMetaType::QString)); + QCOMPARE(QMetaType::type("MyString"), int(QMetaType::QString)); + + // cannot unregister declared types + QVERIFY(!QMetaType::unregisterType(fooId)); + QCOMPARE(QMetaType::type("TestSpace::Foo"), fooId); + QCOMPARE(QMetaType::type("MyFoo"), fooId); + + // test unregistration of dynamic types (used by Qml) + int unregId = QMetaType::registerType("UnregisterMe", + 0, + 0, + QtMetaTypePrivate::QMetaTypeFunctionHelper<void>::Destruct, + QtMetaTypePrivate::QMetaTypeFunctionHelper<void>::Construct, + 0, QMetaType::TypeFlags(), 0); + QCOMPARE(QMetaType::registerTypedef("UnregisterMeTypedef", unregId), unregId); + int unregId2 = QMetaType::registerType("UnregisterMe2", + 0, + 0, + QtMetaTypePrivate::QMetaTypeFunctionHelper<void>::Destruct, + QtMetaTypePrivate::QMetaTypeFunctionHelper<void>::Construct, + 0, QMetaType::TypeFlags(), 0); + QVERIFY(unregId >= int(QMetaType::User)); + QCOMPARE(unregId2, unregId + 2); + + QVERIFY(QMetaType::unregisterType(unregId)); + QCOMPARE(QMetaType::type("UnregisterMe"), 0); + QCOMPARE(QMetaType::type("UnregisterMeTypedef"), 0); + QCOMPARE(QMetaType::type("UnregisterMe2"), unregId2); + QVERIFY(QMetaType::unregisterType(unregId2)); + QCOMPARE(QMetaType::type("UnregisterMe2"), 0); + + // re-registering should always return the lowest free index + QCOMPARE(QMetaType::registerType("UnregisterMe2", + 0, + 0, + QtMetaTypePrivate::QMetaTypeFunctionHelper<void>::Destruct, + QtMetaTypePrivate::QMetaTypeFunctionHelper<void>::Construct, + 0, QMetaType::TypeFlags(), 0), unregId); + QCOMPARE(QMetaType::registerType("UnregisterMe", + 0, + 0, + QtMetaTypePrivate::QMetaTypeFunctionHelper<void>::Destruct, + QtMetaTypePrivate::QMetaTypeFunctionHelper<void>::Construct, + 0, QMetaType::TypeFlags(), 0), unregId + 1); } class IsRegisteredDummyType { }; |