summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@nokia.com>2012-01-13 10:41:02 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-25 21:08:08 +0100
commitaee1f6cc413f56bf4962324799ee3887c3dd037f (patch)
treec0be4eb34dc8fc64a050f8943cbf9d9e1007f0b2
parent4df34f055a152657b30d64128dacc82c075cbd74 (diff)
Cleanup mess in public type ids.
There is no reason to keep two separated core types sets. It couldn't be fixed before Qt5 because of binary compatibility promise. This patch merges QMetaType core types with ext core types. This "simple" operation consists of: - QDataStream version was incremented, because type ids are saved in QVariant's data stream. - QMetaType LastExtCoreType and FirstExtCoreType were replaced by LastCoreType, FirstCoreType and new QMetaType::HighestInternalId. - New tests checking QVariant data stream for Qt4 and for Qt5 versions were added. Change-Id: I02dd74d29317365c297a789a4eb7c9c5edc3b231 Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
-rw-r--r--src/corelib/io/qdatastream.cpp2
-rw-r--r--src/corelib/io/qdatastream.h2
-rw-r--r--src/corelib/kernel/qmetatype.cpp9
-rw-r--r--src/corelib/kernel/qmetatype.h27
-rw-r--r--src/corelib/kernel/qmetatype_p.h2
-rw-r--r--src/corelib/kernel/qvariant.cpp73
-rw-r--r--tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp3
-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.cpp138
-rw-r--r--tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp2
-rw-r--r--tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp2
136 files changed, 212 insertions, 55 deletions
diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp
index 5dad9bd9f9..614910a9d6 100644
--- a/src/corelib/io/qdatastream.cpp
+++ b/src/corelib/io/qdatastream.cpp
@@ -250,7 +250,7 @@ QT_BEGIN_NAMESPACE
return retVal;
enum {
- DefaultStreamVersion = QDataStream::Qt_4_6
+ DefaultStreamVersion = QDataStream::Qt_5_0
};
// ### 5.0: when streaming invalid QVariants, just the type should
diff --git a/src/corelib/io/qdatastream.h b/src/corelib/io/qdatastream.h
index ca10304b30..818e3044d1 100644
--- a/src/corelib/io/qdatastream.h
+++ b/src/corelib/io/qdatastream.h
@@ -87,7 +87,7 @@ public:
Qt_4_7 = Qt_4_6,
Qt_4_8 = Qt_4_7,
Qt_4_9 = Qt_4_8,
- Qt_5_0 = Qt_4_8
+ Qt_5_0 = 13
#if QT_VERSION >= 0x050100
#error Add the datastream version for this Qt version
#endif
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp
index 1c106f4f36..e5fd8a5d24 100644
--- a/src/corelib/kernel/qmetatype.cpp
+++ b/src/corelib/kernel/qmetatype.cpp
@@ -228,14 +228,13 @@ template<> struct TypeDefiniton<QRegExp> { static const bool IsAvailable = false
\value User Base value for user types
- \omitvalue FirstCoreExtType
\omitvalue FirstGuiType
\omitvalue FirstWidgetsType
- \omitvalue LastCoreExtType
\omitvalue LastCoreType
\omitvalue LastGuiType
\omitvalue LastWidgetsType
\omitvalue QReal
+ \omitvalue HighestInternalId
Additional types can be registered using Q_DECLARE_METATYPE().
@@ -362,10 +361,10 @@ const char *QMetaType::typeName(int type)
// In theory it can be filled during compilation time, but for some reason template code
// that is able to do it causes GCC 4.6 to generate additional 3K of executable code. Probably
// it is not worth of it.
- static const char *namesCache[QMetaType::LastCoreExtType + 1];
+ static const char *namesCache[QMetaType::HighestInternalId + 1];
const char *result;
- if (type <= QMetaType::LastCoreExtType && ((result = namesCache[type])))
+ if (type <= QMetaType::HighestInternalId && ((result = namesCache[type])))
return result;
#define QT_METATYPE_TYPEID_TYPENAME_CONVERTER(MetaTypeName, TypeId, RealName) \
@@ -388,7 +387,7 @@ const char *QMetaType::typeName(int type)
}
#undef QT_METATYPE_TYPEID_TYPENAME_CONVERTER
- Q_ASSERT(type <= QMetaType::LastCoreExtType);
+ Q_ASSERT(type <= QMetaType::HighestInternalId);
namesCache[type] = result;
return result;
}
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 5a55ca9bd7..bbe482428f 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -65,16 +65,16 @@ QT_BEGIN_NAMESPACE
F(LongLong, 4, qlonglong) \
F(ULongLong, 5, qulonglong) \
F(Double, 6, double) \
- F(Long, 129, long) \
- F(Short, 130, short) \
- F(Char, 131, char) \
- F(ULong, 132, ulong) \
- F(UShort, 133, ushort) \
- F(UChar, 134, uchar) \
- F(Float, 135, float) \
+ F(Long, 32, long) \
+ F(Short, 33, short) \
+ F(Char, 34, char) \
+ F(ULong, 35, ulong) \
+ F(UShort, 36, ushort) \
+ F(UChar, 37, uchar) \
+ F(Float, 38, float) \
#define QT_FOR_EACH_STATIC_PRIMITIVE_POINTER(F)\
- F(VoidStar, 128, void*) \
+ F(VoidStar, 31, void*) \
#define QT_FOR_EACH_STATIC_CORE_CLASS(F)\
F(QChar, 7, QChar) \
@@ -98,12 +98,12 @@ QT_BEGIN_NAMESPACE
F(QRegExp, 27, QRegExp) \
F(QEasingCurve, 29, QEasingCurve) \
F(QUuid, 30, QUuid) \
- F(QModelIndex, 31, QModelIndex) \
- F(QVariant, 138, QVariant) \
+ F(QVariant, 41, QVariant) \
+ F(QModelIndex, 42, QModelIndex) \
#define QT_FOR_EACH_STATIC_CORE_POINTER(F)\
- F(QObjectStar, 136, QObject*) \
- F(QWidgetStar, 137, QWidget*) \
+ F(QObjectStar, 39, QObject*) \
+ F(QWidgetStar, 40, QWidget*) \
#define QT_FOR_EACH_STATIC_CORE_TEMPLATE(F)\
F(QVariantMap, 8, QVariantMap) \
@@ -188,8 +188,7 @@ public:
LastGuiType = QPolygonF,
FirstWidgetsType = QIcon,
LastWidgetsType = QSizePolicy,
- FirstCoreExtType = VoidStar,
- LastCoreExtType = QVariant,
+ HighestInternalId = LastWidgetsType,
// This logic must match the one in qglobal.h
#if defined(QT_COORD_TYPE)
diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h
index e7a7ed8019..45768bb3b9 100644
--- a/src/corelib/kernel/qmetatype_p.h
+++ b/src/corelib/kernel/qmetatype_p.h
@@ -68,8 +68,6 @@ static inline int moduleForType(const int typeId)
return Gui;
if (typeId <= QMetaType::LastWidgetsType)
return Widgets;
- if (typeId <= QMetaType::LastCoreExtType)
- return Core;
return Unknown;
}
}
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index e0d1114622..c14e6ffd17 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -1625,7 +1625,7 @@ QVariant::Type QVariant::nameToType(const char *name)
#ifndef QT_NO_DATASTREAM
enum { MapFromThreeCount = 36 };
-static const ushort map_from_three[MapFromThreeCount] =
+static const ushort mapIdFromQt3ToCurrent[MapFromThreeCount] =
{
QVariant::Invalid,
QVariant::Map,
@@ -1675,26 +1675,45 @@ void QVariant::load(QDataStream &s)
{
clear();
- quint32 u;
- s >> u;
+ quint32 typeId;
+ s >> typeId;
if (s.version() < QDataStream::Qt_4_0) {
- if (u >= MapFromThreeCount)
+ if (typeId >= MapFromThreeCount)
return;
- u = map_from_three[u];
+ typeId = mapIdFromQt3ToCurrent[typeId];
+ } else if (s.version() < QDataStream::Qt_5_0) {
+ if (typeId >= 128 && typeId != QVariant::UserType) {
+ // In Qt4 id == 128 was FirstExtCoreType. In Qt5 ExtCoreTypes set was merged to CoreTypes
+ // by moving all ids down by 97.
+ typeId -= 97;
+ } else if (typeId == 69 /* QIcon */) {
+ // In Qt5 after modularization project this types where moved to a separate module (and ids were downgraded)
+ typeId = QMetaType::QIcon;
+ } else if (typeId == 75 /* QSizePolicy */) {
+ typeId = QMetaType::QSizePolicy;
+ } else if (typeId >= 70) {
+ // and as a result this types recieved lower ids too
+ if (typeId <= 74) { // QImage QPolygon QRegion QBitmap QCursor
+ typeId -=1;
+ } else if (typeId <= 86) { // QKeySequence QPen QTextLength QTextFormat QMatrix QTransform QMatrix4x4 QVector2D QVector3D QVector4D QQuaternion
+ typeId -=2;
+ }
+ }
}
+
qint8 is_null = false;
if (s.version() >= QDataStream::Qt_4_2)
s >> is_null;
- if (u == QVariant::UserType) {
+ if (typeId == QVariant::UserType) {
QByteArray name;
s >> name;
- u = QMetaType::type(name);
- if (!u) {
+ typeId = QMetaType::type(name);
+ if (!typeId) {
s.setStatus(QDataStream::ReadCorruptData);
return;
}
}
- create(static_cast<int>(u), 0);
+ create(static_cast<int>(typeId), 0);
d.is_null = is_null;
if (!isValid()) {
@@ -1720,12 +1739,12 @@ void QVariant::load(QDataStream &s)
*/
void QVariant::save(QDataStream &s) const
{
- quint32 tp = type();
+ quint32 typeId = type();
if (s.version() < QDataStream::Qt_4_0) {
int i;
for (i = MapFromThreeCount - 1; i >= 0; i--) {
- if (map_from_three[i] == tp) {
- tp = i;
+ if (mapIdFromQt3ToCurrent[i] == typeId) {
+ typeId = i;
break;
}
}
@@ -1733,11 +1752,29 @@ void QVariant::save(QDataStream &s) const
s << QVariant();
return;
}
+ } else if (s.version() < QDataStream::Qt_5_0) {
+ if (typeId >= 128 - 97 && typeId <= LastCoreType) {
+ // In Qt4 id == 128 was FirstExtCoreType. In Qt5 ExtCoreTypes set was merged to CoreTypes
+ // by moving all ids down by 97.
+ typeId += 97;
+ } else if (typeId == QMetaType::QIcon) {
+ // In Qt5 after modularization project this types where moved to a separate module (and ids were downgraded)
+ typeId = 69;
+ } else if (typeId == QMetaType::QSizePolicy) {
+ typeId = 75;
+ } else if (typeId >= QMetaType::QImage) {
+ // and as a result this types recieved lower ids too
+ if (typeId <= QMetaType::QCursor) {
+ typeId +=1;
+ } else if (typeId <= QMetaType::QQuaternion) {
+ typeId +=2;
+ }
+ }
}
- s << tp;
+ s << typeId;
if (s.version() >= QDataStream::Qt_4_2)
s << qint8(d.is_null);
- if (tp == QVariant::UserType) {
+ if (typeId == QVariant::UserType) {
s << QMetaType::typeName(userType());
}
@@ -2411,17 +2448,15 @@ static const quint32 qCanConvertMatrix[QVariant::LastCoreType + 1] =
*/
bool QVariant::canConvert(Type t) const
{
- //we can treat floats as double
- //the reason for not doing it the "proper" way is that QMetaType::Float's value is 135,
- //which can't be handled by qCanConvertMatrix
- //In addition QVariant::Type doesn't have a Float value, so we're using QMetaType::Float
+ // TODO Reimplement this function, currently it works but it is a historical mess.
const uint currentType = ((d.type == QMetaType::Float) ? QVariant::Double : d.type);
if (uint(t) == uint(QMetaType::Float)) t = QVariant::Double;
if (currentType == uint(t))
return true;
- if (currentType > QVariant::LastCoreType || t > QVariant::LastCoreType) {
+ // FIXME It should be LastCoreType intead of Uuid
+ if (currentType > QVariant::Uuid || t > QVariant::Uuid) {
switch (uint(t)) {
case QVariant::Int:
return currentType == QVariant::KeySequence
diff --git a/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp b/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
index 4f39af93ed..6aff143558 100644
--- a/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
+++ b/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
@@ -255,7 +255,8 @@ static int NColorRoles[] = {
QPalette::ToolTipText + 1, // Qt_4_4
QPalette::ToolTipText + 1, // Qt_4_5
QPalette::ToolTipText + 1, // Qt_4_6
- 0 // add the correct value for Qt_4_7 here later
+ QPalette::ToolTipText + 1, // Qt_5_0
+ 0 // add the correct value for Qt_5_1 here later
};
// Testing get/set functions
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 f40b1eae0b..f88e795167 100644
--- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -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)
@@ -2003,13 +2016,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");
@@ -3338,6 +3344,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:
@@ -3397,6 +3520,5 @@ void tst_QVariant::debugStream()
QVERIFY(msgHandler.testPassed());
}
-
QTEST_MAIN(tst_QVariant)
#include "tst_qvariant.moc"
diff --git a/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
index 2faacc2372..558604ea61 100644
--- a/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -242,8 +242,6 @@ void tst_QMetaType::constructCoreType_data()
QTest::addColumn<int>("typeId");
for (int i = 0; i <= QMetaType::LastCoreType; ++i)
QTest::newRow(QMetaType::typeName(i)) << i;
- for (int i = QMetaType::FirstCoreExtType; i <= QMetaType::LastCoreExtType; ++i)
- QTest::newRow(QMetaType::typeName(i)) << i;
// GUI types are tested in tst_QGuiMetaType.
}
diff --git a/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
index 8f0a331c80..52999c170c 100644
--- a/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -307,8 +307,6 @@ void tst_qvariant::createCoreType_data()
QTest::addColumn<int>("typeId");
for (int i = 0; i <= QMetaType::LastCoreType; ++i)
QTest::newRow(QMetaType::typeName(i)) << i;
- for (int i = QMetaType::FirstCoreExtType; i <= QMetaType::LastCoreExtType; ++i)
- QTest::newRow(QMetaType::typeName(i)) << i;
}
// Tests how fast a Qt core type can be default-constructed by a