From cf1e315e285b9a645231538bcbacf9e541c970c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= Date: Wed, 21 Nov 2012 16:24:49 +0100 Subject: Fix QVariant streaming in Qt3 compatibility mode. Task-number: QTBUG-27700 Change-Id: I0408293e43c3330dbc4746198a19709e795f552a Reviewed-by: Stephen Kelly --- .../auto/corelib/kernel/qvariant/tst_qvariant.cpp | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'tests') diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index a01f8b71bf..8ff05753d6 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -234,6 +234,9 @@ private slots: void loadQt5Stream(); void saveQt5Stream_data(); void saveQt5Stream(); + void saveInvalid_data(); + void saveInvalid(); + void saveNewBuiltinWithOldStream(); void implicitConstruction(); private: @@ -3310,5 +3313,42 @@ void tst_QVariant::implicitConstruction() #undef FOR_EACH_CORE_CLASS } +void tst_QVariant::saveInvalid_data() +{ + QTest::addColumn("version"); + for (unsigned version = QDataStream::Qt_5_0; version > QDataStream::Qt_1_0; --version) + QTest::newRow(QString::number(version).toUtf8()) << version; +} + +void tst_QVariant::saveInvalid() +{ + QFETCH(unsigned, version); + + QByteArray data; + QDataStream stream(&data, QIODevice::WriteOnly); + stream.setVersion(version); + stream << QVariant(); + QVERIFY(stream.status() == QDataStream::Ok); + QVERIFY(data.size() >= 4); + QCOMPARE(int(data.constData()[0]), 0); + QCOMPARE(int(data.constData()[1]), 0); + QCOMPARE(int(data.constData()[2]), 0); + QCOMPARE(int(data.constData()[3]), 0); +} + +void tst_QVariant::saveNewBuiltinWithOldStream() +{ + QByteArray data; + QDataStream stream(&data, QIODevice::WriteOnly); + stream.setVersion(QDataStream::Qt_3_1); + stream << QVariant::fromValue(123); // QJsonValue class was introduced in Qt5 + QVERIFY(stream.status() == QDataStream::Ok); + QVERIFY(data.size() >= 4); + QCOMPARE(int(data.constData()[0]), 0); + QCOMPARE(int(data.constData()[1]), 0); + QCOMPARE(int(data.constData()[2]), 0); + QCOMPARE(int(data.constData()[3]), 0); +} + QTEST_MAIN(tst_QVariant) #include "tst_qvariant.moc" -- cgit v1.2.3