diff options
Diffstat (limited to 'tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp')
-rw-r--r-- | tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index da8c182f32..e1b58e6c4b 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -1171,8 +1171,6 @@ void tst_QMetaType::registerStreamBuiltin() qRegisterMetaTypeStreamOperators<QVariant>("QVariant"); } -Q_DECLARE_METATYPE(QSharedPointer<QObject>) - typedef QHash<int, uint> IntUIntHash; Q_DECLARE_METATYPE(IntUIntHash) typedef QMap<int, uint> IntUIntMap; @@ -1228,6 +1226,18 @@ private: int m_int; }; +class MyObject : public QObject +{ + Q_OBJECT +public: + MyObject(QObject *parent = 0) + : QObject(parent) + { + } +}; +typedef MyObject* MyObjectPtr; +Q_DECLARE_METATYPE(MyObjectPtr) + void tst_QMetaType::automaticTemplateRegistration() { { @@ -1418,8 +1428,7 @@ void tst_QMetaType::automaticTemplateRegistration() F(QVector, TYPE) \ F(QQueue, TYPE) \ F(QStack, TYPE) \ - F(QSet, TYPE) \ - F(QSharedPointer, TYPE) + F(QSet, TYPE) #define PRINT_1ARG_TEMPLATE(RealName, ...) \ FOR_EACH_1ARG_TEMPLATE_TYPE(CREATE_AND_VERIFY_CONTAINER, RealName) @@ -1453,6 +1462,20 @@ void tst_QMetaType::automaticTemplateRegistration() #endif // Q_COMPILER_VARIADIC_MACROS +#define TEST_QSHAREDPOINTER(FULLTYPE) \ + { \ + FULLTYPE sp = FULLTYPE::create(); \ + QVariant v = QVariant::fromValue(sp); \ + QCOMPARE(v.typeName(), #FULLTYPE); \ + } + + TEST_QSHAREDPOINTER(QSharedPointer<QObject>) + TEST_QSHAREDPOINTER(QSharedPointer<QFile>) + TEST_QSHAREDPOINTER(QSharedPointer<QTemporaryFile>) + TEST_QSHAREDPOINTER(QSharedPointer<MyObject>) + +#undef TEST_QSHAREDPOINTER + } template <typename T> |