diff options
Diffstat (limited to 'tests/auto/corelib/kernel/qvariant')
-rw-r--r-- | tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index 0b50bc7576..eab2ba4f36 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -2275,10 +2275,26 @@ public: T* operator->() const { return pointer; } }; +template<typename T> +struct SequentialContainer +{ + T t; +}; + +template<typename T, typename U> +struct AssociativeContainer +{ + T t; + U u; +}; + } Q_DECLARE_SMART_POINTER_METATYPE(MyNS::SmartPointer) +Q_DECLARE_METATYPE_TEMPLATE_1ARG(MyNS::SequentialContainer) +Q_DECLARE_METATYPE_TEMPLATE_2ARG(MyNS::AssociativeContainer) + Q_DECLARE_METATYPE(MyNS::SmartPointer<int>) void tst_QVariant::qvariant_cast_QObject_wrapper() @@ -2292,6 +2308,15 @@ void tst_QVariant::qvariant_cast_QObject_wrapper() v.convert(qMetaTypeId<QObject*>()); QCOMPARE(v.value<QObject*>(), object); + MyNS::SequentialContainer<int> sc; + sc.t = 47; + MyNS::AssociativeContainer<int, short> ac; + ac.t = 42; + ac.u = 5; + + QVariant::fromValue(sc); + QVariant::fromValue(ac); + // Compile tests: qRegisterMetaType<MyNS::SmartPointer<int> >(); // Not declared as a metatype: |