summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/kernel')
-rw-r--r--tests/auto/corelib/kernel/qcoreapplication/qcoreapplication.pro2
-rw-r--r--tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp126
-rw-r--r--tests/auto/corelib/kernel/qeventloop/qeventloop.pro2
-rw-r--r--tests/auto/corelib/kernel/qeventloop/tst_qeventloop.cpp86
-rw-r--r--tests/auto/corelib/kernel/qmath/tst_qmath.cpp4
-rw-r--r--tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp4
-rw-r--r--tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp387
-rw-r--r--tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp4
-rw-r--r--tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp107
-rw-r--r--tests/auto/corelib/kernel/qmimedata/tst_qmimedata.cpp4
-rw-r--r--tests/auto/corelib/kernel/qobject/moc_oldnormalizeobject.cpp4
-rw-r--r--tests/auto/corelib/kernel/qobject/oldnormalizeobject.h4
-rw-r--r--tests/auto/corelib/kernel/qobject/signalbug/signalbug.cpp4
-rw-r--r--tests/auto/corelib/kernel/qobject/signalbug/signalbug.h4
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.cpp75
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.pro4
-rw-r--r--tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp4
-rw-r--r--tests/auto/corelib/kernel/qsignalmapper/tst_qsignalmapper.cpp4
-rw-r--r--tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp4
-rw-r--r--tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp4
-rw-r--r--tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp4
-rw-r--r--tests/auto/corelib/kernel/qvariant/qvariant.pro1
-rw-r--r--tests/auto/corelib/kernel/qvariant/qvariant.qrc6
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/bool.binbin0 -> 18 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/char.binbin0 -> 18 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/double.binbin0 -> 29 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/float.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/int.binbin0 -> 19 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/long.binbin0 -> 25 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbitarray.binbin0 -> 31 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbitmap.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbrush.binbin0 -> 105 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbytearray.binbin0 -> 33 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qchar.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qcolor.binbin0 -> 32 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qcursor.binbin0 -> 25 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qdate.binbin0 -> 23 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qdatetime.binbin0 -> 36 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qeasingcurve.binbin0 -> 43 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qfont.binbin0 -> 73 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qicon.binbin0 -> 23 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qimage.binbin0 -> 25 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qkeysequence.binbin0 -> 41 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qline.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlinef.binbin0 -> 53 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlocale.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlonglong.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qmatrix.binbin0 -> 71 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qmatrix4x4.binbin0 -> 157 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpalette.binbin0 -> 5065 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpen.binbin0 -> 132 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpixmap.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpoint.binbin0 -> 29 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpointf.binbin0 -> 39 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpolygon.binbin0 -> 29 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qquaternion.binbin0 -> 63 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qrect.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qrectf.binbin0 -> 53 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qregexp.binbin0 -> 30 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qregion.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsize.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsizef.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsizepolicy.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qstring.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qstringlist.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtextformat.binbin0 -> 39 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtextlength.binbin0 -> 43 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtime.binbin0 -> 23 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtransform.binbin0 -> 101 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qulonglong.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qurl.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariant.binbin0 -> 34 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvarianthash.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariantlist.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariantmap.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector2d.binbin0 -> 43 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector3d.binbin0 -> 51 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector4d.binbin0 -> 59 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/short.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/uchar.binbin0 -> 20 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/uint.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/ulong.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/ushort.binbin0 -> 23 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt4.9/void.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/bool.binbin0 -> 18 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/char.binbin0 -> 18 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/double.binbin0 -> 29 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/float.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/int.binbin0 -> 19 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/long.binbin0 -> 25 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitarray.binbin0 -> 31 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitmap.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbrush.binbin0 -> 105 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbytearray.binbin0 -> 33 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qchar.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcolor.binbin0 -> 32 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcursor.binbin0 -> 25 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdate.binbin0 -> 23 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.binbin0 -> 36 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qeasingcurve.binbin0 -> 43 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qfont.binbin0 -> 89 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qicon.binbin0 -> 23 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qimage.binbin0 -> 25 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qkeysequence.binbin0 -> 41 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qline.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlinef.binbin0 -> 53 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlocale.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlonglong.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix.binbin0 -> 71 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix4x4.binbin0 -> 157 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpalette.binbin0 -> 5065 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpen.binbin0 -> 132 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpixmap.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpoint.binbin0 -> 29 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpointf.binbin0 -> 39 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygon.binbin0 -> 29 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygonf.binbin0 -> 31 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qquaternion.binbin0 -> 63 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qrect.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qrectf.binbin0 -> 53 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregexp.binbin0 -> 30 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregion.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsize.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsizef.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsizepolicy.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qstring.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qstringlist.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextformat.binbin0 -> 39 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextlength.binbin0 -> 43 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtime.binbin0 -> 23 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtransform.binbin0 -> 101 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qulonglong.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qurl.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/quuid.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariant.binbin0 -> 34 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvarianthash.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariantlist.binbin0 -> 37 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariantmap.binbin0 -> 35 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector2d.binbin0 -> 43 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector3d.binbin0 -> 51 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector4d.binbin0 -> 59 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/short.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/uchar.binbin0 -> 20 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/uint.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/ulong.binbin0 -> 27 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/ushort.binbin0 -> 23 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/void.binbin0 -> 21 bytes
-rw-r--r--tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp186
-rw-r--r--tests/auto/corelib/kernel/qwineventnotifier/tst_qwineventnotifier.cpp4
149 files changed, 956 insertions, 82 deletions
diff --git a/tests/auto/corelib/kernel/qcoreapplication/qcoreapplication.pro b/tests/auto/corelib/kernel/qcoreapplication/qcoreapplication.pro
index f9a38c2f14..14df20c986 100644
--- a/tests/auto/corelib/kernel/qcoreapplication/qcoreapplication.pro
+++ b/tests/auto/corelib/kernel/qcoreapplication/qcoreapplication.pro
@@ -1,4 +1,4 @@
CONFIG += testcase parallel_test
TARGET = tst_qcoreapplication
-QT = core testlib
+QT = core testlib core-private
SOURCES = tst_qcoreapplication.cpp
diff --git a/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp b/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp
index 5c2ebc8948..97c9757107 100644
--- a/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp
+++ b/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,14 +34,18 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
-
#include <QtCore/QtCore>
#include <QtTest/QtTest>
+#include <private/qcoreapplication_p.h>
+#include <private/qeventloop_p.h>
+#include <private/qthread_p.h>
+
class tst_QCoreApplication: public QObject
{
Q_OBJECT
@@ -63,6 +66,7 @@ private slots:
void execAfterExit();
void eventLoopExecAfterExit();
void customEventDispatcher();
+ void testQuitLock();
};
class EventSpy : public QObject
@@ -127,7 +131,7 @@ void tst_QCoreApplication::argc()
char *argv[] = { "tst_qcoreapplication" };
QCoreApplication app(argc, argv);
QCOMPARE(argc, 1);
- QCOMPARE(app.argc(), 1);
+ QCOMPARE(app.arguments().count(), 1);
}
{
@@ -135,7 +139,7 @@ void tst_QCoreApplication::argc()
char *argv[] = { "tst_qcoreapplication", "arg1", "arg2", "arg3" };
QCoreApplication app(argc, argv);
QCOMPARE(argc, 4);
- QCOMPARE(app.argc(), 4);
+ QCOMPARE(app.arguments().count(), 4);
}
{
@@ -143,7 +147,7 @@ void tst_QCoreApplication::argc()
char **argv = 0;
QCoreApplication app(argc, argv);
QCOMPARE(argc, 0);
- QCOMPARE(app.argc(), 0);
+ QCOMPARE(app.arguments().count(), 0);
}
{
@@ -151,7 +155,7 @@ void tst_QCoreApplication::argc()
char *argv[] = { "tst_qcoreapplication", "-qmljsdebugger=port:3768,block" };
QCoreApplication app(argc, argv);
QCOMPARE(argc, 1);
- QCOMPARE(app.argc(), 1);
+ QCOMPARE(app.arguments().count(), 1);
}
}
@@ -640,5 +644,113 @@ void tst_QCoreApplication::customEventDispatcher()
QVERIFY(weak_ed.isNull());
}
+class JobObject : public QObject
+{
+ Q_OBJECT
+public:
+
+ explicit JobObject(QEventLoop *loop, QObject *parent = 0)
+ : QObject(parent), locker(loop)
+ {
+ QTimer::singleShot(1000, this, SLOT(timeout()));
+ }
+
+ explicit JobObject(QObject *parent = 0)
+ : QObject(parent)
+ {
+ QTimer::singleShot(1000, this, SLOT(timeout()));
+ }
+
+public slots:
+ void startSecondaryJob()
+ {
+ new JobObject();
+ }
+
+private slots:
+ void timeout()
+ {
+ emit done();
+ deleteLater();
+ }
+
+signals:
+ void done();
+
+private:
+ QEventLoopLocker locker;
+};
+
+class QuitTester : public QObject
+{
+ Q_OBJECT
+public:
+ QuitTester(QObject *parent = 0)
+ : QObject(parent)
+ {
+ QTimer::singleShot(0, this, SLOT(doTest()));
+ }
+
+private slots:
+ void doTest()
+ {
+ QCoreApplicationPrivate *privateClass = static_cast<QCoreApplicationPrivate*>(QObjectPrivate::get(qApp));
+
+ {
+ QCOMPARE(privateClass->quitLockRef.load(), 0);
+ // Test with a lock active so that the refcount doesn't drop to zero during these tests, causing a quit.
+ // (until we exit the scope)
+ QEventLoopLocker locker;
+
+ QCOMPARE(privateClass->quitLockRef.load(), 1);
+
+ JobObject *job1 = new JobObject(this);
+
+ QCOMPARE(privateClass->quitLockRef.load(), 2);
+
+ delete job1;
+
+ QCOMPARE(privateClass->quitLockRef.load(), 1);
+
+ job1 = new JobObject(this);
+
+ QCOMPARE(privateClass->quitLockRef.load(), 2);
+
+ JobObject *job2 = new JobObject(this);
+
+ QCOMPARE(privateClass->quitLockRef.load(), 3);
+
+ delete job1;
+
+ QCOMPARE(privateClass->quitLockRef.load(), 2);
+
+ JobObject *job3 = new JobObject(job2);
+
+ QCOMPARE(privateClass->quitLockRef.load(), 3);
+
+ JobObject *job4 = new JobObject(job2);
+
+ QCOMPARE(privateClass->quitLockRef.load(), 4);
+
+ delete job2;
+
+ QCOMPARE(privateClass->quitLockRef.load(), 1);
+
+ }
+ QCOMPARE(privateClass->quitLockRef.load(), 0);
+ }
+};
+
+void tst_QCoreApplication::testQuitLock()
+{
+ int argc = 1;
+ char *argv[] = { "tst_qcoreapplication" };
+ QCoreApplication app(argc, argv);
+
+ QuitTester tester;
+ app.exec();
+}
+
+
QTEST_APPLESS_MAIN(tst_QCoreApplication)
#include "tst_qcoreapplication.moc"
diff --git a/tests/auto/corelib/kernel/qeventloop/qeventloop.pro b/tests/auto/corelib/kernel/qeventloop/qeventloop.pro
index d21a7d64f6..adfc810788 100644
--- a/tests/auto/corelib/kernel/qeventloop/qeventloop.pro
+++ b/tests/auto/corelib/kernel/qeventloop/qeventloop.pro
@@ -1,6 +1,6 @@
CONFIG += testcase
TARGET = tst_qeventloop
-QT = core network testlib
+QT = core network testlib core-private
SOURCES = tst_qeventloop.cpp
win32:!wince*:LIBS += -luser32
diff --git a/tests/auto/corelib/kernel/qeventloop/tst_qeventloop.cpp b/tests/auto/corelib/kernel/qeventloop/tst_qeventloop.cpp
index 49e3fec33e..e2144134d9 100644
--- a/tests/auto/corelib/kernel/qeventloop/tst_qeventloop.cpp
+++ b/tests/auto/corelib/kernel/qeventloop/tst_qeventloop.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
@@ -45,6 +45,7 @@
#include <qcoreapplication.h>
#include <qcoreevent.h>
#include <qeventloop.h>
+#include <private/qeventloop_p.h>
#include <qmutex.h>
#include <qthread.h>
#include <qtimer.h>
@@ -194,6 +195,8 @@ private slots:
// keep this test last:
void nestedLoops();
+ void testQuitLock();
+
protected:
void customEvent(QEvent *e);
};
@@ -640,6 +643,85 @@ void tst_QEventLoop::deliverInDefinedOrder()
}
+class JobObject : public QObject
+{
+ Q_OBJECT
+public:
+
+ explicit JobObject(QEventLoop *loop, QObject *parent = 0)
+ : QObject(parent), loop(loop), locker(loop)
+ {
+ }
+
+ explicit JobObject(QObject *parent = 0)
+ : QObject(parent)
+ {
+ }
+
+public slots:
+ void start(int timeout = 200)
+ {
+ QTimer::singleShot(timeout, this, SLOT(timeout()));
+ }
+
+private slots:
+ void timeout()
+ {
+ emit done();
+ deleteLater();
+ }
+
+signals:
+ void done();
+
+private:
+ QEventLoop *loop;
+ QEventLoopLocker locker;
+};
+
+void tst_QEventLoop::testQuitLock()
+{
+ QEventLoop eventLoop;
+
+ QTimer timer;
+ timer.setInterval(100);
+ QSignalSpy timerSpy(&timer, SIGNAL(timeout()));
+ timer.start();
+
+ QEventLoopPrivate* privateClass = static_cast<QEventLoopPrivate*>(QObjectPrivate::get(&eventLoop));
+
+ QCOMPARE(privateClass->quitLockRef.load(), 0);
+
+ JobObject *job1 = new JobObject(&eventLoop, this);
+ job1->start(500);
+
+ QCOMPARE(privateClass->quitLockRef.load(), 1);
+
+ eventLoop.exec();
+
+ QCOMPARE(privateClass->quitLockRef.load(), 0);
+
+ // The job takes long enough that the timer times out several times.
+ QVERIFY(timerSpy.count() > 3);
+ timerSpy.clear();
+
+ job1 = new JobObject(&eventLoop, this);
+ job1->start(200);
+
+ JobObject *previousJob = job1;
+ for (int i = 0; i < 9; ++i) {
+ JobObject *subJob = new JobObject(&eventLoop, this);
+ connect(previousJob, SIGNAL(done()), subJob, SLOT(start()));
+ previousJob = subJob;
+ }
+
+ eventLoop.exec();
+
+ qDebug() << timerSpy.count();
+ // The timer times out more if it has more subjobs to do.
+ // We run 10 jobs in sequence here of about 200ms each.
+ QVERIFY(timerSpy.count() > 17);
+}
QTEST_MAIN(tst_QEventLoop)
#include "tst_qeventloop.moc"
diff --git a/tests/auto/corelib/kernel/qmath/tst_qmath.cpp b/tests/auto/corelib/kernel/qmath/tst_qmath.cpp
index fab95564d2..bd5339a259 100644
--- a/tests/auto/corelib/kernel/qmath/tst_qmath.cpp
+++ b/tests/auto/corelib/kernel/qmath/tst_qmath.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
index 0fe82f6277..68ff8e4bb6 100644
--- a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
+++ b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
index fb7122aec4..def1b74ea4 100644
--- a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
+++ b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
@@ -47,7 +47,6 @@ class tst_QMetaObjectBuilder : public QObject
{
Q_OBJECT
private slots:
- void mocVersionCheck();
void create();
void className();
void superClass();
@@ -57,6 +56,7 @@ private slots:
void signal();
void constructor();
void property();
+ void variantProperty();
void notifySignal();
void enumerator();
void classInfo();
@@ -66,6 +66,14 @@ private slots:
void serialize();
void removeNotifySignal();
+ void usage_signal();
+ void usage_property();
+ void usage_slot();
+ void usage_method();
+ void usage_constructor();
+ void usage_connect();
+ void usage_templateConnect();
+
private:
static bool checkForSideEffects
(const QMetaObjectBuilder& builder,
@@ -129,18 +137,6 @@ signals:
void propChanged(const QString&);
};
-void tst_QMetaObjectBuilder::mocVersionCheck()
-{
- // This test will fail when the moc version number is changed.
- // It is intended as a reminder to also update QMetaObjectBuilder
- // whenenver moc changes. Once QMetaObjectBuilder has been
- // updated, this test can be changed to check for the next version.
- int version = int(QObject::staticMetaObject.d.data[0]);
- QVERIFY(version == 4 || version == 5 || version == 6);
- version = int(staticMetaObject.d.data[0]);
- QVERIFY(version == 4 || version == 5 || version == 6);
-}
-
void tst_QMetaObjectBuilder::create()
{
QMetaObjectBuilder builder;
@@ -727,6 +723,20 @@ void tst_QMetaObjectBuilder::property()
QCOMPARE(builder.method(0).signature(), QByteArray("propChanged(QString)"));
}
+void tst_QMetaObjectBuilder::variantProperty()
+{
+ QMetaObjectBuilder builder;
+ builder.addProperty("variant", "const QVariant &");
+ QMetaObject *meta = builder.toMetaObject();
+
+ QMetaProperty prop = meta->property(meta->propertyOffset());
+ QCOMPARE(QMetaType::Type(prop.type()), QMetaType::QVariant);
+ QCOMPARE(QMetaType::Type(prop.userType()), QMetaType::QVariant);
+ QCOMPARE(QByteArray(prop.typeName()), QByteArray("QVariant"));
+
+ qFree(meta);
+}
+
void tst_QMetaObjectBuilder::notifySignal()
{
QMetaObjectBuilder builder;
@@ -1259,6 +1269,353 @@ bool tst_QMetaObjectBuilder::sameMetaObject
return true;
}
+
+// This class is used to test that the meta-object generated by QMOB can be
+// used by a real object.
+// The class manually implements the functions normally generated by moc, and
+// creates the corresponding meta-object using QMOB. The autotests check that
+// this object can be used by QObject/QMetaObject functionality (property
+// access, signals & slots, constructing instances, ...).
+
+class TestObject : public QObject
+{
+ // Manually expanded from Q_OBJECT macro
+public:
+ Q_OBJECT_CHECK
+ virtual const QMetaObject *metaObject() const;
+ virtual void *qt_metacast(const char *);
+ virtual int qt_metacall(QMetaObject::Call, int, void **);
+private:
+ Q_DECL_HIDDEN static const QMetaObjectExtraData staticMetaObjectExtraData;
+ Q_DECL_HIDDEN static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **);
+
+ //Q_PROPERTY(int intProp READ intProp WRITE setIntProp NOTIFY intPropChanged)
+public:
+ TestObject(QObject *parent = 0); // Q_INVOKABLE
+ ~TestObject();
+
+ // Property accessors
+ int intProp() const;
+ void setIntProp(int v);
+
+ void emitIntPropChanged();
+
+ int voidSlotIntArgument() const;
+
+// Q_INVOKABLE
+ QVariantList listInvokableQRealQString(qreal, const QString &);
+
+//public Q_SLOTS:
+ void voidSlotInt(int);
+
+//Q_SIGNALS:
+ void intPropChanged(int);
+
+private:
+ static QMetaObject *buildMetaObject();
+
+ QMetaObject *m_metaObject;
+ int m_intProp;
+ int m_voidSlotIntArg;
+};
+
+const QMetaObjectExtraData TestObject::staticMetaObjectExtraData = {
+ 0, qt_static_metacall
+};
+
+TestObject::TestObject(QObject *parent)
+ : QObject(parent), m_metaObject(buildMetaObject()),
+ m_intProp(-1), m_voidSlotIntArg(-1)
+{
+}
+
+TestObject::~TestObject()
+{
+ qFree(m_metaObject);
+}
+
+QMetaObject *TestObject::buildMetaObject()
+{
+ QMetaObjectBuilder builder;
+ // NOTE: If you change the meta-object, remember to adapt qt_metacall and
+ // friends below accordingly.
+
+ builder.setClassName("TestObject");
+
+ builder.setStaticMetacallFunction(qt_static_metacall);
+
+ QMetaMethodBuilder intPropChanged = builder.addSignal("intPropChanged(int)");
+ intPropChanged.setParameterNames(QList<QByteArray>() << "newIntPropValue");
+
+ QMetaPropertyBuilder prop = builder.addProperty("intProp", "int");
+ prop.setNotifySignal(intPropChanged);
+
+ QMetaMethodBuilder voidSlotInt = builder.addSlot("voidSlotInt(int)");
+ voidSlotInt.setParameterNames(QList<QByteArray>() << "slotIntArg");
+
+ QMetaMethodBuilder listInvokableQRealQString = builder.addMethod("listInvokableQRealQString(qreal,QString)");
+ listInvokableQRealQString.setReturnType("QVariantList");
+ listInvokableQRealQString.setParameterNames(QList<QByteArray>() << "qrealArg" << "qstringArg");
+
+ builder.addConstructor("TestObject(QObject*)");
+ builder.addConstructor("TestObject()");
+
+ return builder.toMetaObject();
+}
+
+int TestObject::intProp() const
+{
+ return m_intProp;
+}
+
+void TestObject::setIntProp(int value)
+{
+ if (m_intProp != value) {
+ m_intProp = value;
+ emit intPropChanged(value);
+ }
+}
+
+void TestObject::emitIntPropChanged()
+{
+ emit intPropChanged(m_intProp);
+}
+
+QVariantList TestObject::listInvokableQRealQString(qreal r, const QString &s)
+{
+ return QVariantList() << r << s;
+}
+
+void TestObject::voidSlotInt(int value)
+{
+ m_voidSlotIntArg = value;
+}
+
+int TestObject::voidSlotIntArgument() const
+{
+ return m_voidSlotIntArg;
+}
+
+void TestObject::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::CreateInstance) {
+ switch (_id) {
+ case 0: { TestObject *_r = new TestObject((*reinterpret_cast< QObject*(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast<QObject**>(_a[0]) = _r; } break;
+ case 1: { TestObject *_r = new TestObject();
+ if (_a[0]) *reinterpret_cast<QObject**>(_a[0]) = _r; } break;
+ default: {
+ QMetaMethod ctor = _o->metaObject()->constructor(_id);
+ qFatal("You forgot to add a case for CreateInstance %s", ctor.signature());
+ }
+ }
+ } else if (_c == QMetaObject::InvokeMetaMethod) {
+ Q_ASSERT(_o->metaObject()->cast(_o));
+ TestObject *_t = static_cast<TestObject *>(_o);
+ switch (_id) {
+ case 0: _t->intPropChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: _t->voidSlotInt((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 2: *reinterpret_cast<QVariantList(*)>(_a[0]) = _t->listInvokableQRealQString(*reinterpret_cast<qreal(*)>(_a[1]), *reinterpret_cast<QString(*)>(_a[2])); break;
+ default: {
+ QMetaMethod method = _o->metaObject()->method(_o->metaObject()->methodOffset() + _id);
+ qFatal("You forgot to add a case for InvokeMetaMethod %s", method.signature());
+ }
+ }
+ } else if (_c == QMetaObject::IndexOfMethod) {
+ // This code is currently unreachable because it's only used by the
+ // template-based versions of connect() and disconnect(), which don't
+ // work with dynamically generated meta-objects (see test).
+ int *result = reinterpret_cast<int *>(_a[0]);
+ void **func = reinterpret_cast<void **>(_a[1]);
+ {
+ typedef void (TestObject::*_t)(int );
+ if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&TestObject::intPropChanged)) {
+ *result = 0;
+ }
+ }
+ {
+ typedef void (TestObject::*_t)(int );
+ if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&TestObject::voidSlotInt)) {
+ *result = 1;
+ }
+ }
+ {
+ typedef QVariantList (TestObject::*_t)(qreal, const QString &);
+ if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&TestObject::listInvokableQRealQString)) {
+ *result = 2;
+ }
+ }
+ qFatal("You forgot to add one or more IndexOfMethod cases");
+ }
+}
+
+const QMetaObject *TestObject::metaObject() const
+{
+ return m_metaObject;
+}
+
+void *TestObject::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, "TestObject"))
+ return static_cast<void*>(const_cast< TestObject*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int TestObject::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ int ownMethodCount = m_metaObject->methodCount() - m_metaObject->methodOffset();
+ int ownPropertyCount = m_metaObject->propertyCount() - m_metaObject->propertyOffset();
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < ownMethodCount)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= ownMethodCount;
+ }
+#ifndef QT_NO_PROPERTIES
+ else if (_c == QMetaObject::ReadProperty) {
+ void *_v = _a[0];
+ switch (_id) {
+ case 0: *reinterpret_cast< int*>(_v) = intProp(); break;
+ default: if (_id < ownPropertyCount) {
+ QMetaProperty prop = m_metaObject->property(m_metaObject->propertyOffset() + _id);
+ qFatal("You forgot to add a case for ReadProperty %s", prop.name());
+ }
+ }
+ _id -= ownPropertyCount;
+ } else if (_c == QMetaObject::WriteProperty) {
+ void *_v = _a[0];
+ switch (_id) {
+ case 0: setIntProp(*reinterpret_cast< int*>(_v)); break;
+ default: if (_id < ownPropertyCount) {
+ QMetaProperty prop = m_metaObject->property(m_metaObject->propertyOffset() + _id);
+ qFatal("You forgot to add a case for WriteProperty %s", prop.name());
+ }
+ }
+ _id -= ownPropertyCount;
+ } else if (_c == QMetaObject::ResetProperty) {
+ _id -= ownPropertyCount;
+ } else if (_c == QMetaObject::QueryPropertyDesignable) {
+ _id -= ownPropertyCount;
+ } else if (_c == QMetaObject::QueryPropertyScriptable) {
+ _id -= ownPropertyCount;
+ } else if (_c == QMetaObject::QueryPropertyStored) {
+ _id -= ownPropertyCount;
+ } else if (_c == QMetaObject::QueryPropertyEditable) {
+ _id -= ownPropertyCount;
+ } else if (_c == QMetaObject::QueryPropertyUser) {
+ _id -= ownPropertyCount;
+ }
+#endif // QT_NO_PROPERTIES
+ return _id;
+}
+
+// SIGNAL 0
+void TestObject::intPropChanged(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, m_metaObject, 0, _a);
+}
+
+
+void tst_QMetaObjectBuilder::usage_signal()
+{
+ QScopedPointer<TestObject> testObject(new TestObject);
+
+ QSignalSpy propChangedSpy(testObject.data(), SIGNAL(intPropChanged(int)));
+ testObject->emitIntPropChanged();
+ QCOMPARE(propChangedSpy.count(), 1);
+ QCOMPARE(propChangedSpy.at(0).count(), 1);
+ QCOMPARE(propChangedSpy.at(0).at(0).toInt(), testObject->intProp());
+}
+
+void tst_QMetaObjectBuilder::usage_property()
+{
+ QScopedPointer<TestObject> testObject(new TestObject);
+
+ QVariant prop = testObject->property("intProp");
+ QCOMPARE(prop.type(), QVariant::Int);
+ QCOMPARE(prop.toInt(), testObject->intProp());
+
+ QSignalSpy propChangedSpy(testObject.data(), SIGNAL(intPropChanged(int)));
+ QVERIFY(testObject->intProp() != 123);
+ testObject->setProperty("intProp", 123);
+ QCOMPARE(propChangedSpy.count(), 1);
+ prop = testObject->property("intProp");
+ QCOMPARE(prop.type(), QVariant::Int);
+ QCOMPARE(prop.toInt(), 123);
+}
+
+void tst_QMetaObjectBuilder::usage_slot()
+{
+ QScopedPointer<TestObject> testObject(new TestObject);
+
+ int index = testObject->metaObject()->indexOfMethod("voidSlotInt(int)");
+ QVERIFY(index != -1);
+ QMetaMethod voidSlotInt = testObject->metaObject()->method(index);
+
+ QVERIFY(testObject->voidSlotIntArgument() == -1);
+ QVERIFY(voidSlotInt.invoke(testObject.data(), Q_ARG(int, 123)));
+ QCOMPARE(testObject->voidSlotIntArgument(), 123);
+}
+
+void tst_QMetaObjectBuilder::usage_method()
+{
+ QScopedPointer<TestObject> testObject(new TestObject);
+
+ int index = testObject->metaObject()->indexOfMethod("listInvokableQRealQString(qreal,QString)");
+ QVERIFY(index != -1);
+ QMetaMethod listInvokableQRealQString = testObject->metaObject()->method(index);
+ QVariantList list;
+ QVERIFY(listInvokableQRealQString.invoke(testObject.data(), Q_RETURN_ARG(QVariantList, list),
+ Q_ARG(qreal, 123.0), Q_ARG(QString, "ciao")));
+ QCOMPARE(list.size(), 2);
+ QCOMPARE(list.at(0).type(), QVariant::Type(QMetaType::QReal));
+ QCOMPARE(list.at(0).toDouble(), double(123));
+ QCOMPARE(list.at(1).type(), QVariant::String);
+ QCOMPARE(list.at(1).toString(), QString::fromLatin1("ciao"));
+}
+
+void tst_QMetaObjectBuilder::usage_constructor()
+{
+ QScopedPointer<TestObject> testObject(new TestObject);
+
+ QCOMPARE(testObject->metaObject()->constructorCount(), 2);
+ QScopedPointer<QObject> testInstance(testObject->metaObject()->newInstance());
+ QVERIFY(testInstance != 0);
+ QScopedPointer<QObject> testInstance2(testObject->metaObject()->newInstance(Q_ARG(QObject*, testInstance.data())));
+ QVERIFY(testInstance2 != 0);
+ QCOMPARE(testInstance2->parent(), testInstance.data());
+}
+
+void tst_QMetaObjectBuilder::usage_connect()
+{
+ QScopedPointer<TestObject> testObject(new TestObject);
+
+ QVERIFY(QObject::connect(testObject.data(), SIGNAL(intPropChanged(int)),
+ testObject.data(), SLOT(voidSlotInt(int))));
+
+ QVERIFY(testObject->voidSlotIntArgument() == -1);
+ testObject->setProperty("intProp", 123);
+ QCOMPARE(testObject->voidSlotIntArgument(), 123);
+
+ QVERIFY(QObject::disconnect(testObject.data(), SIGNAL(intPropChanged(int)),
+ testObject.data(), SLOT(voidSlotInt(int))));
+}
+
+void tst_QMetaObjectBuilder::usage_templateConnect()
+{
+ QScopedPointer<TestObject> testObject(new TestObject);
+
+ QTest::ignoreMessage(QtWarningMsg, "QObject::connect: signal not found in QObject");
+ QMetaObject::Connection con = QObject::connect(testObject.data(), &TestObject::intPropChanged,
+ testObject.data(), &TestObject::voidSlotInt);
+ QEXPECT_FAIL("", "template-based connect() fails because meta-object is deduced at compile-time", Abort);
+ QVERIFY(con);
+}
+
QTEST_MAIN(tst_QMetaObjectBuilder)
#include "tst_qmetaobjectbuilder.moc"
diff --git a/tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp b/tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp
index e225371a7f..3e1d4f1603 100644
--- a/tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp
+++ b/tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
index d5aa369a92..be13b39e7e 100644
--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
@@ -89,6 +89,7 @@ private slots:
void isRegistered();
void unregisterType();
void registerStreamBuiltin();
+ void automaticTemplateRegistration();
};
struct Foo { int i; };
@@ -570,15 +571,12 @@ FOR_EACH_CORE_METATYPE(RETURN_CREATE_COPY_FUNCTION)
TypeTestFunctionGetter::get(type)();
}
-template<typename T> struct SafeSizeOf { enum {Size = sizeof(T)}; };
-template<> struct SafeSizeOf<void> { enum {Size = 0}; };
-
void tst_QMetaType::sizeOf_data()
{
QTest::addColumn<QMetaType::Type>("type");
QTest::addColumn<int>("size");
#define ADD_METATYPE_TEST_ROW(MetaTypeName, MetaTypeId, RealType) \
- QTest::newRow(#RealType) << QMetaType::MetaTypeName << int(SafeSizeOf<RealType>::Size);
+ QTest::newRow(#RealType) << QMetaType::MetaTypeName << int(QTypeInfo<RealType>::sizeOf);
FOR_EACH_CORE_METATYPE(ADD_METATYPE_TEST_ROW)
#undef ADD_METATYPE_TEST_ROW
}
@@ -596,21 +594,50 @@ Q_DECLARE_TYPEINFO(CustomMovable, Q_MOVABLE_TYPE);
QT_END_NAMESPACE
Q_DECLARE_METATYPE(CustomMovable);
+class CustomObject : public QObject
+{
+ Q_OBJECT
+public:
+ CustomObject(QObject *parent = 0)
+ : QObject(parent)
+ {
+
+ }
+};
+Q_DECLARE_METATYPE(CustomObject*);
+
+struct SecondBase {};
+
+class CustomMultiInheritanceObject : public QObject, SecondBase
+{
+ Q_OBJECT
+public:
+ CustomMultiInheritanceObject(QObject *parent = 0)
+ : QObject(parent)
+ {
+
+ }
+};
+Q_DECLARE_METATYPE(CustomMultiInheritanceObject*);
+
void tst_QMetaType::flags_data()
{
QTest::addColumn<int>("type");
QTest::addColumn<bool>("isMovable");
QTest::addColumn<bool>("isComplex");
+ QTest::addColumn<bool>("isPointerToQObject");
#define ADD_METATYPE_TEST_ROW(MetaTypeName, MetaTypeId, RealType) \
- QTest::newRow(#RealType) << MetaTypeId << bool(!QTypeInfo<RealType>::isStatic) << bool(QTypeInfo<RealType>::isComplex);
+ QTest::newRow(#RealType) << MetaTypeId << bool(!QTypeInfo<RealType>::isStatic) << bool(QTypeInfo<RealType>::isComplex) << bool(QtPrivate::IsPointerToTypeDerivedFromQObject<RealType>::Value);
QT_FOR_EACH_STATIC_CORE_CLASS(ADD_METATYPE_TEST_ROW)
QT_FOR_EACH_STATIC_PRIMITIVE_POINTER(ADD_METATYPE_TEST_ROW)
QT_FOR_EACH_STATIC_CORE_POINTER(ADD_METATYPE_TEST_ROW)
#undef ADD_METATYPE_TEST_ROW
- QTest::newRow("TestSpace::Foo") << ::qMetaTypeId<TestSpace::Foo>() << false << true;
- QTest::newRow("Whity<double>") << ::qMetaTypeId<Whity<double> >() << false << true;
- QTest::newRow("CustomMovable") << ::qMetaTypeId<CustomMovable>() << true << true;
+ QTest::newRow("TestSpace::Foo") << ::qMetaTypeId<TestSpace::Foo>() << false << true << false;
+ QTest::newRow("Whity<double>") << ::qMetaTypeId<Whity<double> >() << false << true << false;
+ QTest::newRow("CustomMovable") << ::qMetaTypeId<CustomMovable>() << true << true << false;
+ QTest::newRow("CustomObject*") << ::qMetaTypeId<CustomObject*>() << true << false << true;
+ QTest::newRow("CustomMultiInheritanceObject*") << ::qMetaTypeId<CustomMultiInheritanceObject*>() << true << false << true;
}
void tst_QMetaType::flags()
@@ -618,10 +645,12 @@ void tst_QMetaType::flags()
QFETCH(int, type);
QFETCH(bool, isMovable);
QFETCH(bool, isComplex);
+ QFETCH(bool, isPointerToQObject);
QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::NeedsConstruction), isComplex);
QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::NeedsDestruction), isComplex);
QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::MovableType), isMovable);
+ QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::PointerToQObject), isPointerToQObject);
}
void tst_QMetaType::construct_data()
@@ -857,5 +886,63 @@ void tst_QMetaType::registerStreamBuiltin()
qRegisterMetaTypeStreamOperators<QVariant>("QVariant");
}
+Q_DECLARE_METATYPE(QSharedPointer<QObject>)
+
+void tst_QMetaType::automaticTemplateRegistration()
+{
+ {
+ QList<int> intList;
+ intList << 42;
+ QVERIFY(QVariant::fromValue(intList).value<QList<int> >().first() == 42);
+ QVector<QList<int> > vectorList;
+ vectorList << intList;
+ QVERIFY(QVariant::fromValue(vectorList).value<QVector<QList<int> > >().first().first() == 42);
+ }
+
+ {
+ QList<QByteArray> bytearrayList;
+ bytearrayList << QByteArray("foo");
+ QVERIFY(QVariant::fromValue(bytearrayList).value<QList<QByteArray> >().first() == QByteArray("foo"));
+ QVector<QList<QByteArray> > vectorList;
+ vectorList << bytearrayList;
+ QVERIFY(QVariant::fromValue(vectorList).value<QVector<QList<QByteArray> > >().first().first() == QByteArray("foo"));
+ }
+
+ QCOMPARE(::qMetaTypeId<QVariantList>(), (int)QMetaType::QVariantList);
+ QCOMPARE(::qMetaTypeId<QList<QVariant> >(), (int)QMetaType::QVariantList);
+
+ {
+ QList<QVariant> variantList;
+ variantList << 42;
+ QVERIFY(QVariant::fromValue(variantList).value<QList<QVariant> >().first() == 42);
+ QVector<QList<QVariant> > vectorList;
+ vectorList << variantList;
+ QVERIFY(QVariant::fromValue(vectorList).value<QVector<QList<QVariant> > >().first().first() == 42);
+ }
+
+ {
+ QList<QSharedPointer<QObject> > sharedPointerList;
+ QObject *testObject = new QObject;
+ sharedPointerList << QSharedPointer<QObject>(testObject);
+ QVERIFY(QVariant::fromValue(sharedPointerList).value<QList<QSharedPointer<QObject> > >().first() == testObject);
+ QVector<QList<QSharedPointer<QObject> > > vectorList;
+ vectorList << sharedPointerList;
+ QVERIFY(QVariant::fromValue(vectorList).value<QVector<QList<QSharedPointer<QObject> > > >().first().first() == testObject);
+ }
+}
+
+// Compile-time test, it should be possible to register function pointer types
+class Undefined;
+
+typedef Undefined (*UndefinedFunction0)();
+typedef Undefined (*UndefinedFunction1)(Undefined);
+typedef Undefined (*UndefinedFunction2)(Undefined, Undefined);
+typedef Undefined (*UndefinedFunction3)(Undefined, Undefined, Undefined);
+
+Q_DECLARE_METATYPE(UndefinedFunction0);
+Q_DECLARE_METATYPE(UndefinedFunction1);
+Q_DECLARE_METATYPE(UndefinedFunction2);
+Q_DECLARE_METATYPE(UndefinedFunction3);
+
QTEST_MAIN(tst_QMetaType)
#include "tst_qmetatype.moc"
diff --git a/tests/auto/corelib/kernel/qmimedata/tst_qmimedata.cpp b/tests/auto/corelib/kernel/qmimedata/tst_qmimedata.cpp
index f55701b3ec..09f17602b3 100644
--- a/tests/auto/corelib/kernel/qmimedata/tst_qmimedata.cpp
+++ b/tests/auto/corelib/kernel/qmimedata/tst_qmimedata.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qobject/moc_oldnormalizeobject.cpp b/tests/auto/corelib/kernel/qobject/moc_oldnormalizeobject.cpp
index b4069eba6c..2d180b88ea 100644
--- a/tests/auto/corelib/kernel/qobject/moc_oldnormalizeobject.cpp
+++ b/tests/auto/corelib/kernel/qobject/moc_oldnormalizeobject.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qobject/oldnormalizeobject.h b/tests/auto/corelib/kernel/qobject/oldnormalizeobject.h
index efd1df2f5a..f73027707a 100644
--- a/tests/auto/corelib/kernel/qobject/oldnormalizeobject.h
+++ b/tests/auto/corelib/kernel/qobject/oldnormalizeobject.h
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the QtTest module of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qobject/signalbug/signalbug.cpp b/tests/auto/corelib/kernel/qobject/signalbug/signalbug.cpp
index 86e8869a33..a1fd6e7534 100644
--- a/tests/auto/corelib/kernel/qobject/signalbug/signalbug.cpp
+++ b/tests/auto/corelib/kernel/qobject/signalbug/signalbug.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qobject/signalbug/signalbug.h b/tests/auto/corelib/kernel/qobject/signalbug/signalbug.h
index bba612c998..661485885e 100644
--- a/tests/auto/corelib/kernel/qobject/signalbug/signalbug.h
+++ b/tests/auto/corelib/kernel/qobject/signalbug/signalbug.h
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
index f3bba08544..7f95f68075 100644
--- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
+++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
@@ -75,6 +75,7 @@ private slots:
void findChildren();
void connectDisconnectNotify_data();
void connectDisconnectNotify();
+ void connectNotifyPtr();
void emitInDefinedOrder();
void customTypes();
void streamCustomTypes();
@@ -134,6 +135,7 @@ private slots:
void returnValue();
void returnValue2_data();
void returnValue2();
+ void connectVirtualSlots();
};
class SenderObject : public QObject
@@ -848,6 +850,19 @@ void tst_QObject::connectDisconnectNotify()
delete r;
}
+void tst_QObject::connectNotifyPtr()
+{
+ NotifyObject *s = new NotifyObject;
+ NotifyObject *r = new NotifyObject;
+
+ connect( (SenderObject*)s, &SenderObject::signal1, (ReceiverObject*)r, &ReceiverObject::slot1 );
+ QCOMPARE( s->org_signal, s->nw_signal );
+ QCOMPARE( s->org_signal.toLatin1(), QMetaObject::normalizedSignature(SIGNAL(signal1())));
+
+ delete s;
+ delete r;
+}
+
class SequenceObject : public ReceiverObject
{
Q_OBJECT
@@ -1670,7 +1685,7 @@ void tst_QObject::property()
const int idx = mo->indexOfProperty("variant");
QVERIFY(idx != -1);
- QVERIFY(mo->property(idx).type() == QVariant::LastType);
+ QCOMPARE(QMetaType::Type(mo->property(idx).type()), QMetaType::QVariant);
QCOMPARE(object.property("variant"), QVariant());
QVariant variant1(42);
QVariant variant2("string");
@@ -3363,7 +3378,7 @@ void tst_QObject::deleteQObjectWhenDeletingEvent()
};
QObject o;
- QGuiApplication::postEvent(&o, new MyEvent);
+ QCoreApplication::postEvent(&o, new MyEvent);
QCoreApplication::removePostedEvents(&o); // here you would get a deadlock
}
@@ -4128,11 +4143,17 @@ void tst_QObject::pointerConnect()
r1->reset();
r2->reset();
ReceiverObject::sequence = 0;
+ QTimer timer;
QVERIFY( connect( s, &SenderObject::signal1 , r1, &ReceiverObject::slot1 ) );
QVERIFY( connect( s, &SenderObject::signal1 , r2, &ReceiverObject::slot1 ) );
QVERIFY( connect( s, &SenderObject::signal1 , r1, &ReceiverObject::slot3 ) );
QVERIFY( connect( s, &SenderObject::signal3 , r1, &ReceiverObject::slot3 ) );
+#if defined(Q_CC_GNU) && defined(Q_OS_UNIX)
+ QEXPECT_FAIL("", "Test may fail due to failing comparison of pointers to member functions caused by problems with -reduce-relocations on this platform.", Continue);
+#endif
+ QVERIFY2( connect( &timer, &QTimer::timeout, r1, &ReceiverObject::deleteLater ),
+ "Signal connection failed most likely due to failing comparison of pointers to member functions caused by problems with -reduce-relocations on this platform.");
s->emitSignal1();
s->emitSignal2();
@@ -5150,6 +5171,52 @@ void tst_QObject::returnValue2()
}
}
+class VirtualSlotsObjectBase : public QObject {
+ Q_OBJECT
+public slots:
+ virtual void slot1() {
+ base_counter1++;
+ }
+public:
+ VirtualSlotsObjectBase() : base_counter1(0) {}
+ int base_counter1;
+signals:
+ void signal1();
+};
+
+class VirtualSlotsObject : public VirtualSlotsObjectBase {
+ Q_OBJECT
+public slots:
+ virtual void slot1() {
+ derived_counter1++;
+ }
+public:
+ VirtualSlotsObject() : derived_counter1(0) {}
+ int derived_counter1;
+};
+
+void tst_QObject::connectVirtualSlots()
+{
+ VirtualSlotsObject obj;
+ QVERIFY( QObject::connect(&obj, &VirtualSlotsObjectBase::signal1, &obj, &VirtualSlotsObjectBase::slot1, Qt::UniqueConnection));
+ QVERIFY(!QObject::connect(&obj, &VirtualSlotsObjectBase::signal1, &obj, &VirtualSlotsObjectBase::slot1, Qt::UniqueConnection));
+
+ emit obj.signal1();
+ QCOMPARE(obj.base_counter1, 0);
+ QCOMPARE(obj.derived_counter1, 1);
+
+ QVERIFY(QObject::disconnect(&obj, &VirtualSlotsObjectBase::signal1, &obj, &VirtualSlotsObjectBase::slot1));
+ QVERIFY(!QObject::disconnect(&obj, &VirtualSlotsObjectBase::signal1, &obj, &VirtualSlotsObjectBase::slot1));
+
+ emit obj.signal1();
+ QCOMPARE(obj.base_counter1, 0);
+ QCOMPARE(obj.derived_counter1, 1);
+
+ /* the C++ standard say the comparison between pointer to virtual member function is unspecified
+ QVERIFY( QObject::connect(&obj, &VirtualSlotsObjectBase::signal1, &obj, &VirtualSlotsObjectBase::slot1, Qt::UniqueConnection));
+ QVERIFY(!QObject::connect(&obj, &VirtualSlotsObjectBase::signal1, &obj, &VirtualSlotsObject::slot1, Qt::UniqueConnection));
+ */
+}
QTEST_MAIN(tst_QObject)
#include "tst_qobject.moc"
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.pro b/tests/auto/corelib/kernel/qobject/tst_qobject.pro
index e13852629c..d74f2bcb0f 100644
--- a/tests/auto/corelib/kernel/qobject/tst_qobject.pro
+++ b/tests/auto/corelib/kernel/qobject/tst_qobject.pro
@@ -1,6 +1,6 @@
-CONFIG += testcase
+CONFIG += testcase console
TARGET = tst_qobject
-QT = core-private network gui testlib
+QT = core-private network testlib
SOURCES = tst_qobject.cpp
# this is here for a reason, moc_oldnormalizedobject.cpp is not auto-generated, it was generated by
diff --git a/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp b/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp
index df4c5f99cb..9eac2b78be 100644
--- a/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp
+++ b/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qsignalmapper/tst_qsignalmapper.cpp b/tests/auto/corelib/kernel/qsignalmapper/tst_qsignalmapper.cpp
index 4b9c37a5e0..b1fdf51c20 100644
--- a/tests/auto/corelib/kernel/qsignalmapper/tst_qsignalmapper.cpp
+++ b/tests/auto/corelib/kernel/qsignalmapper/tst_qsignalmapper.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp b/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp
index 180e7d532b..e3bfe3bc6d 100644
--- a/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp
+++ b/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp
index 098d8a8825..e8dade9387 100644
--- a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp
+++ b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp b/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp
index a7ccc45642..033d10001f 100644
--- a/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp
+++ b/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/corelib/kernel/qvariant/qvariant.pro b/tests/auto/corelib/kernel/qvariant/qvariant.pro
index 93877a1059..48229ee140 100644
--- a/tests/auto/corelib/kernel/qvariant/qvariant.pro
+++ b/tests/auto/corelib/kernel/qvariant/qvariant.pro
@@ -2,5 +2,6 @@ CONFIG += testcase
TARGET = tst_qvariant
QT += widgets network testlib
SOURCES = tst_qvariant.cpp
+RESOURCES += qvariant.qrc
mac: CONFIG += insignificant_test # QTBUG-QTBUG-22747
diff --git a/tests/auto/corelib/kernel/qvariant/qvariant.qrc b/tests/auto/corelib/kernel/qvariant/qvariant.qrc
new file mode 100644
index 0000000000..e6f7bdac80
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/qvariant.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>stream/qt4.9/</file>
+ <file>stream/qt5.0/</file>
+</qresource>
+</RCC>
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/bool.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/bool.bin
new file mode 100644
index 0000000000..7929cb4129
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/bool.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/char.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/char.bin
new file mode 100644
index 0000000000..3c15cb7850
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/char.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/double.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/double.bin
new file mode 100644
index 0000000000..ac9ed179f2
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/double.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/float.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/float.bin
new file mode 100644
index 0000000000..540c010dc9
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/float.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/int.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/int.bin
new file mode 100644
index 0000000000..6b47a9aeb4
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/int.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/long.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/long.bin
new file mode 100644
index 0000000000..66891d5ed8
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/long.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbitarray.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbitarray.bin
new file mode 100644
index 0000000000..e534174651
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbitarray.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbitmap.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbitmap.bin
new file mode 100644
index 0000000000..13f4dc374d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbitmap.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbrush.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbrush.bin
new file mode 100644
index 0000000000..60ea8a2b08
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbrush.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbytearray.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbytearray.bin
new file mode 100644
index 0000000000..19897811d0
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qbytearray.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qchar.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qchar.bin
new file mode 100644
index 0000000000..f4ef9df794
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qchar.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qcolor.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qcolor.bin
new file mode 100644
index 0000000000..ba1c332e14
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qcolor.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qcursor.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qcursor.bin
new file mode 100644
index 0000000000..545fa96a1f
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qcursor.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qdate.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qdate.bin
new file mode 100644
index 0000000000..d3281b1336
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qdate.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qdatetime.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qdatetime.bin
new file mode 100644
index 0000000000..664eb736a7
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qdatetime.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qeasingcurve.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qeasingcurve.bin
new file mode 100644
index 0000000000..b9b9ea633b
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qeasingcurve.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qfont.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qfont.bin
new file mode 100644
index 0000000000..76bc5d932f
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qfont.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qicon.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qicon.bin
new file mode 100644
index 0000000000..2f8713244c
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qicon.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qimage.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qimage.bin
new file mode 100644
index 0000000000..0ab1cbf6fa
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qimage.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qkeysequence.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qkeysequence.bin
new file mode 100644
index 0000000000..03db168e93
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qkeysequence.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qline.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qline.bin
new file mode 100644
index 0000000000..f1f5cde63c
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qline.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlinef.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlinef.bin
new file mode 100644
index 0000000000..4b1c2f05fb
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlinef.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlocale.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlocale.bin
new file mode 100644
index 0000000000..44d9d1c993
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlocale.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlonglong.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlonglong.bin
new file mode 100644
index 0000000000..f1c297a91d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qlonglong.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qmatrix.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qmatrix.bin
new file mode 100644
index 0000000000..fc88e2564a
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qmatrix.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qmatrix4x4.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qmatrix4x4.bin
new file mode 100644
index 0000000000..3a8b664a69
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qmatrix4x4.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpalette.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpalette.bin
new file mode 100644
index 0000000000..1ad94631bd
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpalette.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpen.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpen.bin
new file mode 100644
index 0000000000..1eff5c83ad
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpen.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpixmap.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpixmap.bin
new file mode 100644
index 0000000000..ce9cb8c434
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpixmap.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpoint.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpoint.bin
new file mode 100644
index 0000000000..ca66b1ec4c
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpoint.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpointf.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpointf.bin
new file mode 100644
index 0000000000..7aebb46299
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpointf.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpolygon.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpolygon.bin
new file mode 100644
index 0000000000..fbdab8fffc
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qpolygon.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qquaternion.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qquaternion.bin
new file mode 100644
index 0000000000..01ee6dcdbc
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qquaternion.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qrect.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qrect.bin
new file mode 100644
index 0000000000..70730db7e1
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qrect.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qrectf.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qrectf.bin
new file mode 100644
index 0000000000..2f8dac670b
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qrectf.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qregexp.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qregexp.bin
new file mode 100644
index 0000000000..db8518e064
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qregexp.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qregion.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qregion.bin
new file mode 100644
index 0000000000..27eec8c4d5
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qregion.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsize.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsize.bin
new file mode 100644
index 0000000000..fec8c62c16
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsize.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsizef.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsizef.bin
new file mode 100644
index 0000000000..210976a005
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsizef.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsizepolicy.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsizepolicy.bin
new file mode 100644
index 0000000000..00f1b2906e
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qsizepolicy.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qstring.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qstring.bin
new file mode 100644
index 0000000000..f44d7cbbc0
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qstring.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qstringlist.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qstringlist.bin
new file mode 100644
index 0000000000..34e6f73ab5
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qstringlist.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtextformat.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtextformat.bin
new file mode 100644
index 0000000000..91382db9c4
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtextformat.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtextlength.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtextlength.bin
new file mode 100644
index 0000000000..945dfc0ba9
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtextlength.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtime.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtime.bin
new file mode 100644
index 0000000000..31f63fd1fb
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtime.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtransform.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtransform.bin
new file mode 100644
index 0000000000..53c4db55f2
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qtransform.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qulonglong.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qulonglong.bin
new file mode 100644
index 0000000000..e321e7d77d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qulonglong.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qurl.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qurl.bin
new file mode 100644
index 0000000000..4e444b7cc0
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qurl.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariant.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariant.bin
new file mode 100644
index 0000000000..7d5c5303b8
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariant.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvarianthash.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvarianthash.bin
new file mode 100644
index 0000000000..e2ffb002af
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvarianthash.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariantlist.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariantlist.bin
new file mode 100644
index 0000000000..cf95d44875
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariantlist.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariantmap.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariantmap.bin
new file mode 100644
index 0000000000..6b0b1fb27d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvariantmap.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector2d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector2d.bin
new file mode 100644
index 0000000000..a219ab66dd
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector2d.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector3d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector3d.bin
new file mode 100644
index 0000000000..4444fb6236
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector3d.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector4d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector4d.bin
new file mode 100644
index 0000000000..46bcc26f13
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/qvector4d.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/short.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/short.bin
new file mode 100644
index 0000000000..124776f9d7
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/short.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/uchar.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/uchar.bin
new file mode 100644
index 0000000000..1dea2c16c0
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/uchar.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/uint.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/uint.bin
new file mode 100644
index 0000000000..086e080224
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/uint.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/ulong.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/ulong.bin
new file mode 100644
index 0000000000..92dfdaad6c
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/ulong.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/ushort.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/ushort.bin
new file mode 100644
index 0000000000..d386a76f1a
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/ushort.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt4.9/void.bin b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/void.bin
new file mode 100644
index 0000000000..7337dc7cfb
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt4.9/void.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/bool.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/bool.bin
new file mode 100644
index 0000000000..7929cb4129
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/bool.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/char.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/char.bin
new file mode 100644
index 0000000000..4422f29a62
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/char.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/double.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/double.bin
new file mode 100644
index 0000000000..ac9ed179f2
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/double.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/float.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/float.bin
new file mode 100644
index 0000000000..fc7cca7d07
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/float.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/int.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/int.bin
new file mode 100644
index 0000000000..6b47a9aeb4
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/int.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/long.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/long.bin
new file mode 100644
index 0000000000..5a1ed0d740
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/long.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitarray.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitarray.bin
new file mode 100644
index 0000000000..e534174651
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitarray.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitmap.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitmap.bin
new file mode 100644
index 0000000000..511e260744
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitmap.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbrush.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbrush.bin
new file mode 100644
index 0000000000..60ea8a2b08
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbrush.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbytearray.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbytearray.bin
new file mode 100644
index 0000000000..19897811d0
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbytearray.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qchar.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qchar.bin
new file mode 100644
index 0000000000..f4ef9df794
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qchar.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcolor.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcolor.bin
new file mode 100644
index 0000000000..ba1c332e14
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcolor.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcursor.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcursor.bin
new file mode 100644
index 0000000000..a7be10e143
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcursor.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdate.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdate.bin
new file mode 100644
index 0000000000..d3281b1336
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdate.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.bin
new file mode 100644
index 0000000000..664eb736a7
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qeasingcurve.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qeasingcurve.bin
new file mode 100644
index 0000000000..5cf664eb27
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qeasingcurve.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qfont.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qfont.bin
new file mode 100644
index 0000000000..e8aa03af9b
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qfont.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qicon.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qicon.bin
new file mode 100644
index 0000000000..bf3ca9ed4b
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qicon.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qimage.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qimage.bin
new file mode 100644
index 0000000000..03665c1edc
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qimage.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qkeysequence.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qkeysequence.bin
new file mode 100644
index 0000000000..7f7447a821
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qkeysequence.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qline.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qline.bin
new file mode 100644
index 0000000000..f1f5cde63c
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qline.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlinef.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlinef.bin
new file mode 100644
index 0000000000..4b1c2f05fb
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlinef.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlocale.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlocale.bin
new file mode 100644
index 0000000000..44d9d1c993
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlocale.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlonglong.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlonglong.bin
new file mode 100644
index 0000000000..f1c297a91d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qlonglong.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix.bin
new file mode 100644
index 0000000000..93434b42c9
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix4x4.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix4x4.bin
new file mode 100644
index 0000000000..8d3f9b81e8
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix4x4.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpalette.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpalette.bin
new file mode 100644
index 0000000000..503c1a4664
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpalette.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpen.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpen.bin
new file mode 100644
index 0000000000..edafc2d185
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpen.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpixmap.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpixmap.bin
new file mode 100644
index 0000000000..ce9cb8c434
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpixmap.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpoint.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpoint.bin
new file mode 100644
index 0000000000..ca66b1ec4c
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpoint.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpointf.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpointf.bin
new file mode 100644
index 0000000000..7aebb46299
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpointf.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygon.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygon.bin
new file mode 100644
index 0000000000..8d3275df41
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygon.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygonf.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygonf.bin
new file mode 100644
index 0000000000..3e85997f2d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygonf.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qquaternion.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qquaternion.bin
new file mode 100644
index 0000000000..c498f8fd08
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qquaternion.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qrect.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qrect.bin
new file mode 100644
index 0000000000..70730db7e1
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qrect.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qrectf.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qrectf.bin
new file mode 100644
index 0000000000..2f8dac670b
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qrectf.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregexp.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregexp.bin
new file mode 100644
index 0000000000..db8518e064
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregexp.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregion.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregion.bin
new file mode 100644
index 0000000000..ecf01a8b31
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregion.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsize.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsize.bin
new file mode 100644
index 0000000000..fec8c62c16
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsize.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsizef.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsizef.bin
new file mode 100644
index 0000000000..210976a005
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsizef.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsizepolicy.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsizepolicy.bin
new file mode 100644
index 0000000000..cfdf49b4c2
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qsizepolicy.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qstring.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qstring.bin
new file mode 100644
index 0000000000..f44d7cbbc0
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qstring.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qstringlist.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qstringlist.bin
new file mode 100644
index 0000000000..34e6f73ab5
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qstringlist.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextformat.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextformat.bin
new file mode 100644
index 0000000000..432068d921
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextformat.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextlength.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextlength.bin
new file mode 100644
index 0000000000..3b209f1be2
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextlength.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtime.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtime.bin
new file mode 100644
index 0000000000..31f63fd1fb
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtime.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtransform.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtransform.bin
new file mode 100644
index 0000000000..52cddb5e93
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtransform.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qulonglong.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qulonglong.bin
new file mode 100644
index 0000000000..e321e7d77d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qulonglong.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qurl.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qurl.bin
new file mode 100644
index 0000000000..4e444b7cc0
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qurl.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/quuid.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/quuid.bin
new file mode 100644
index 0000000000..a8d57c6acd
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/quuid.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariant.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariant.bin
new file mode 100644
index 0000000000..1c8bc45769
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariant.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvarianthash.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvarianthash.bin
new file mode 100644
index 0000000000..e2ffb002af
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvarianthash.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariantlist.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariantlist.bin
new file mode 100644
index 0000000000..cf95d44875
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariantlist.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariantmap.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariantmap.bin
new file mode 100644
index 0000000000..6b0b1fb27d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariantmap.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector2d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector2d.bin
new file mode 100644
index 0000000000..2bc3aeb18d
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector2d.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector3d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector3d.bin
new file mode 100644
index 0000000000..b035f7f074
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector3d.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector4d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector4d.bin
new file mode 100644
index 0000000000..a804c5e655
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector4d.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/short.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/short.bin
new file mode 100644
index 0000000000..e7ae61f176
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/short.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/uchar.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/uchar.bin
new file mode 100644
index 0000000000..426f97426f
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/uchar.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/uint.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/uint.bin
new file mode 100644
index 0000000000..086e080224
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/uint.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/ulong.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/ulong.bin
new file mode 100644
index 0000000000..399a9ea220
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/ulong.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/ushort.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/ushort.bin
new file mode 100644
index 0000000000..25cb14e173
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/ushort.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/void.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/void.bin
new file mode 100644
index 0000000000..7337dc7cfb
--- /dev/null
+++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/void.bin
Binary files differ
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
index c2d4f0a240..2bf554dd78 100644
--- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
@@ -262,6 +262,19 @@ private slots:
void forwardDeclare();
void debugStream_data();
void debugStream();
+
+ void loadQt4Stream_data();
+ void loadQt4Stream();
+ void saveQt4Stream_data();
+ void saveQt4Stream();
+ void loadQt5Stream_data();
+ void loadQt5Stream();
+ void saveQt5Stream_data();
+ void saveQt5Stream();
+private:
+ void dataStream_data(QDataStream::Version version);
+ void loadQVariantFromDataStream(QDataStream::Version version);
+ void saveQVariantFromDataStream(QDataStream::Version version);
};
Q_DECLARE_METATYPE(QDate)
@@ -1906,7 +1919,7 @@ void tst_QVariant::typeName_data()
QTest::newRow("39") << int(QVariant::RectF) << QByteArray("QRectF");
QTest::newRow("40") << int(QVariant::PointF) << QByteArray("QPointF");
QTest::newRow("41") << int(QVariant::RegExp) << QByteArray("QRegExp");
- QTest::newRow("42") << int(QVariant::UserType) << QByteArray("UserType");
+ QTest::newRow("42") << int(QVariant::UserType) << QByteArray();
QTest::newRow("43") << int(QVariant::Matrix) << QByteArray("QMatrix");
QTest::newRow("44") << int(QVariant::Transform) << QByteArray("QTransform");
QTest::newRow("45") << int(QVariant::Hash) << QByteArray("QVariantHash");
@@ -1948,7 +1961,14 @@ void tst_QVariant::typeToName()
QVERIFY( QVariant::nameToType( 0 ) == QVariant::Invalid );
QVERIFY( QVariant::nameToType( "" ) == QVariant::Invalid );
QVERIFY( QVariant::nameToType( "foo" ) == QVariant::Invalid );
- QCOMPARE(QVariant::nameToType("QIconSet"), QVariant::Icon);
+
+ QCOMPARE(QVariant::nameToType("UserType"), QVariant::Invalid);
+
+ // We don't support these old (Qt3) types anymore.
+ QCOMPARE(QVariant::nameToType("QIconSet"), QVariant::Invalid);
+ QCOMPARE(QVariant::nameToType("Q3CString"), QVariant::Invalid);
+ QCOMPARE(QVariant::nameToType("Q_LLONG"), QVariant::Invalid);
+ QCOMPARE(QVariant::nameToType("Q_ULLONG"), QVariant::Invalid);
}
void tst_QVariant::streamInvalidVariant()
@@ -2003,13 +2023,6 @@ Q_DECLARE_METATYPE(MyType*)
void tst_QVariant::userType()
{
{
- QVariant userVariant(QVariant::UserType);
-
- QVERIFY(userVariant.isValid());
- QVERIFY(userVariant.isNull());
- }
-
- {
MyType data(1, "eins");
MyType data2(2, "zwei");
@@ -3248,6 +3261,34 @@ void tst_QVariant::moreCustomTypes()
PLAY_WITH_VARIANT(d, false, QString(), 0, false);
}
QCOMPARE(MyMovable::count, 0);
+
+ {
+ QList<QList<int> > data;
+ PLAY_WITH_VARIANT(data, false, QString(), 0, false);
+ data << (QList<int>() << 42);
+ PLAY_WITH_VARIANT(data, false, QString(), 0, false);
+ }
+
+ {
+ QList<QVector<int> > data;
+ PLAY_WITH_VARIANT(data, false, QString(), 0, false);
+ data << (QVector<int>() << 42);
+ PLAY_WITH_VARIANT(data, false, QString(), 0, false);
+ }
+
+ {
+ QList<QSet<int> > data;
+ PLAY_WITH_VARIANT(data, false, QString(), 0, false);
+ data << (QSet<int>() << 42);
+ PLAY_WITH_VARIANT(data, false, QString(), 0, false);
+ }
+
+ {
+ QList<QLinkedList<int> > data;
+ PLAY_WITH_VARIANT(data, false, QString(), 0, false);
+ data << (QLinkedList<int>() << 42);
+ PLAY_WITH_VARIANT(data, false, QString(), 0, false);
+ }
}
void tst_QVariant::movabilityTest()
@@ -3324,6 +3365,11 @@ void tst_QVariant::colorInteger()
}
class Forward;
+QT_BEGIN_NAMESPACE namespace QtPrivate {
+template <> struct IsPointerToTypeDerivedFromQObject<Forward*> {
+ enum { Value = false };
+};
+} QT_END_NAMESPACE
Q_DECLARE_METATYPE(Forward*);
void tst_QVariant::forwardDeclare()
@@ -3333,6 +3379,123 @@ void tst_QVariant::forwardDeclare()
QCOMPARE(qvariant_cast<Forward*>(v), f);
}
+void tst_QVariant::loadQt5Stream_data()
+{
+ dataStream_data(QDataStream::Qt_5_0);
+}
+
+void tst_QVariant::loadQt5Stream()
+{
+ loadQVariantFromDataStream(QDataStream::Qt_5_0);
+}
+
+void tst_QVariant::saveQt5Stream_data()
+{
+ dataStream_data(QDataStream::Qt_5_0);
+}
+
+void tst_QVariant::saveQt5Stream()
+{
+ saveQVariantFromDataStream(QDataStream::Qt_5_0);
+}
+
+void tst_QVariant::loadQt4Stream_data()
+{
+ dataStream_data(QDataStream::Qt_4_9);
+}
+
+void tst_QVariant::loadQt4Stream()
+{
+ loadQVariantFromDataStream(QDataStream::Qt_4_9);
+}
+
+void tst_QVariant::saveQt4Stream_data()
+{
+ dataStream_data(QDataStream::Qt_4_9);
+}
+
+void tst_QVariant::saveQt4Stream()
+{
+ saveQVariantFromDataStream(QDataStream::Qt_4_9);
+}
+
+void tst_QVariant::dataStream_data(QDataStream::Version version)
+{
+ QTest::addColumn<QString>("fileName");
+
+ QString path;
+ switch (version) {
+ case QDataStream::Qt_4_9:
+ path = QString::fromLatin1("qt4.9");
+ break;
+ case QDataStream::Qt_5_0:
+ path = QString::fromLatin1("qt5.0");
+ break;
+ default:
+ Q_UNIMPLEMENTED();
+ }
+
+ path = path.prepend(":/stream/").append("/");
+ QDir dir(path);
+ uint i = 0;
+ foreach (const QFileInfo &fileInfo, dir.entryInfoList(QStringList() << "*.bin")) {
+ QTest::newRow((path + fileInfo.fileName()).toLatin1()) << fileInfo.filePath();
+ i += 1;
+ }
+ QVERIFY(i > 10);
+}
+
+void tst_QVariant::loadQVariantFromDataStream(QDataStream::Version version)
+{
+ QFETCH(QString, fileName);
+
+ QFile file(fileName);
+ QVERIFY(file.open(QIODevice::ReadOnly));
+
+ QDataStream stream(&file);
+ stream.setVersion(version);
+
+ QString typeName;
+ QVariant loadedVariant;
+ stream >> typeName >> loadedVariant;
+
+ const int id = QMetaType::type(typeName.toLatin1());
+ QVariant constructedVariant(static_cast<QVariant::Type>(id));
+ QCOMPARE(constructedVariant.userType(), id);
+ QCOMPARE(QMetaType::typeName(loadedVariant.userType()), typeName.toLatin1().constData());
+ QCOMPARE(loadedVariant.userType(), constructedVariant.userType());
+}
+
+void tst_QVariant::saveQVariantFromDataStream(QDataStream::Version version)
+{
+ QFETCH(QString, fileName);
+
+ QFile file(fileName);
+ QVERIFY(file.open(QIODevice::ReadOnly));
+ QDataStream dataFileStream(&file);
+
+ QString typeName;
+ dataFileStream >> typeName;
+ QByteArray data = file.readAll();
+ const int id = QMetaType::type(typeName.toLatin1());
+
+ QBuffer buffer;
+ buffer.open(QIODevice::ReadWrite);
+ QDataStream stream(&buffer);
+ stream.setVersion(version);
+
+ QVariant constructedVariant(static_cast<QVariant::Type>(id));
+ QCOMPARE(constructedVariant.userType(), id);
+ stream << constructedVariant;
+
+ // We are testing QVariant there is no point in testing full array.
+ QCOMPARE(buffer.data().left(5), data.left(5));
+
+ buffer.seek(0);
+ QVariant recunstructedVariant;
+ stream >> recunstructedVariant;
+ QCOMPARE(recunstructedVariant.userType(), constructedVariant.userType());
+}
class MessageHandler {
public:
@@ -3392,6 +3555,5 @@ void tst_QVariant::debugStream()
QVERIFY(msgHandler.testPassed());
}
-
QTEST_MAIN(tst_QVariant)
#include "tst_qvariant.moc"
diff --git a/tests/auto/corelib/kernel/qwineventnotifier/tst_qwineventnotifier.cpp b/tests/auto/corelib/kernel/qwineventnotifier/tst_qwineventnotifier.cpp
index cd87bed601..0d3c4e0f88 100644
--- a/tests/auto/corelib/kernel/qwineventnotifier/tst_qwineventnotifier.cpp
+++ b/tests/auto/corelib/kernel/qwineventnotifier/tst_qwineventnotifier.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/