summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@digia.com>2012-11-21 16:24:49 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-24 14:55:30 +0100
commitcf1e315e285b9a645231538bcbacf9e541c970c3 (patch)
tree33aef9f3d2d8aa5a37ff8347f03f69b0359bfc5e /tests/auto
parent0bfc5b898d0e6cbe210cf1f71ff556f7dd3be6a2 (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/auto')
-rw-r--r--tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp40
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"