diff options
author | Jędrzej Nowacki <jedrzej.nowacki@digia.com> | 2012-11-21 16:24:49 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-24 14:55:30 +0100 |
commit | cf1e315e285b9a645231538bcbacf9e541c970c3 (patch) | |
tree | 33aef9f3d2d8aa5a37ff8347f03f69b0359bfc5e /tests | |
parent | 0bfc5b898d0e6cbe210cf1f71ff556f7dd3be6a2 (diff) |
Fix QVariant streaming in Qt3 compatibility mode.
Task-number: QTBUG-27700
Change-Id: I0408293e43c3330dbc4746198a19709e795f552a
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
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<unsigned>("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<QJsonValue>(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" |