summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qvariant
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/kernel/qvariant')
-rw-r--r--tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp25
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: