diff options
Diffstat (limited to 'tests/auto/corelib/serialization/qdatastream')
4 files changed, 198 insertions, 109 deletions
diff --git a/tests/auto/corelib/serialization/qdatastream/.prev_CMakeLists.txt b/tests/auto/corelib/serialization/qdatastream/.prev_CMakeLists.txt new file mode 100644 index 0000000000..a293f87155 --- /dev/null +++ b/tests/auto/corelib/serialization/qdatastream/.prev_CMakeLists.txt @@ -0,0 +1,33 @@ +# Generated from qdatastream.pro. + +##################################################################### +## tst_qdatastream Test: +##################################################################### + +# Collect test data +list(APPEND test_data "datastream.q42") + +add_qt_test(tst_qdatastream + SOURCES + tst_qdatastream.cpp + PUBLIC_LIBRARIES + Qt::Gui + TESTDATA ${test_data} +) + +## Scopes: +##################################################################### + +if(ANDROID AND NOT ANDROID_EMBEDDED) + # Resources: + set(testdata_resource_files + "datastream.q42" + ) + + add_qt_resource(tst_qdatastream "testdata" + PREFIX + "/" + FILES + ${testdata_resource_files} + ) +endif() diff --git a/tests/auto/corelib/serialization/qdatastream/CMakeLists.txt b/tests/auto/corelib/serialization/qdatastream/CMakeLists.txt new file mode 100644 index 0000000000..a293f87155 --- /dev/null +++ b/tests/auto/corelib/serialization/qdatastream/CMakeLists.txt @@ -0,0 +1,33 @@ +# Generated from qdatastream.pro. + +##################################################################### +## tst_qdatastream Test: +##################################################################### + +# Collect test data +list(APPEND test_data "datastream.q42") + +add_qt_test(tst_qdatastream + SOURCES + tst_qdatastream.cpp + PUBLIC_LIBRARIES + Qt::Gui + TESTDATA ${test_data} +) + +## Scopes: +##################################################################### + +if(ANDROID AND NOT ANDROID_EMBEDDED) + # Resources: + set(testdata_resource_files + "datastream.q42" + ) + + add_qt_resource(tst_qdatastream "testdata" + PREFIX + "/" + FILES + ${testdata_resource_files} + ) +endif() diff --git a/tests/auto/corelib/serialization/qdatastream/qdatastream.pro b/tests/auto/corelib/serialization/qdatastream/qdatastream.pro index 469d689f3f..25f8b889a0 100644 --- a/tests/auto/corelib/serialization/qdatastream/qdatastream.pro +++ b/tests/auto/corelib/serialization/qdatastream/qdatastream.pro @@ -3,8 +3,6 @@ TARGET = tst_qdatastream QT += testlib SOURCES = tst_qdatastream.cpp -DEFINES -= QT_NO_LINKED_LIST - TESTDATA += datastream.q42 android:!android-embedded { diff --git a/tests/auto/corelib/serialization/qdatastream/tst_qdatastream.cpp b/tests/auto/corelib/serialization/qdatastream/tst_qdatastream.cpp index 7ada913778..419a8138a1 100644 --- a/tests/auto/corelib/serialization/qdatastream/tst_qdatastream.cpp +++ b/tests/auto/corelib/serialization/qdatastream/tst_qdatastream.cpp @@ -122,9 +122,15 @@ private slots: void stream_Map_data(); void stream_Map(); + void stream_MultiMap_data(); + void stream_MultiMap(); + void stream_Hash_data(); void stream_Hash(); + void stream_MultiHash_data(); + void stream_MultiHash(); + void stream_qint64_data(); void stream_qint64(); @@ -181,7 +187,7 @@ private slots: void status_QHash_QMap(); - void status_QLinkedList_QList_QVector(); + void status_QList_QVector(); void streamToAndFromQByteArray(); @@ -231,7 +237,9 @@ private: void writeQRegularExpression(QDataStream *dev); #endif void writeMap(QDataStream* dev); + void writeMultiMap(QDataStream* dev); void writeHash(QDataStream* dev); + void writeMultiHash(QDataStream* dev); void writeqint64(QDataStream *s); void writeQIcon(QDataStream *s); void writeQEasingCurve(QDataStream *s); @@ -263,7 +271,9 @@ private: void readQRegularExpression(QDataStream *s); #endif void readMap(QDataStream *s); + void readMultiMap(QDataStream *s); void readHash(QDataStream *s); + void readMultiHash(QDataStream *s); void readqint64(QDataStream *s); void readQIcon(QDataStream *s); void readQEasingCurve(QDataStream *s); @@ -293,7 +303,8 @@ static int NColorRoles[] = { QPalette::ToolTipText + 1, // Qt_5_4, Qt_5_5 QPalette::ToolTipText + 1, // Qt_5_6, Qt_5_7, Qt_5_8, Qt_5_9, Qt_5_10, Qt_5_11 QPalette::PlaceholderText + 1, // Qt_5_12 - QPalette::PlaceholderText + 1, // Qt_5_13 + QPalette::PlaceholderText + 1, // Qt_5_13, Qt_5_14, Qt_5_15 + QPalette::PlaceholderText + 1, // Qt_6_0 0 // add the correct value for Qt_5_14 here later }; @@ -651,16 +662,10 @@ static Map MapData(int index) map.insert(2, "bbb"); map.insert(3, "cccccc"); break; - case 2: - map.insert(1, "a"); - map.insert(2, "one"); - map.insertMulti(2, "two"); - map.insertMulti(2, "three"); - map.insert(3, "cccccc"); } return map; } -#define MAX_MAP_DATA 3 +#define MAX_MAP_DATA 2 void tst_QDataStream::stream_Map_data() { @@ -690,6 +695,60 @@ void tst_QDataStream::readMap(QDataStream *s) QCOMPARE(S, test); } +typedef QMultiMap<int, QString> MultiMap; + +static MultiMap MultiMapData(int index) +{ + MultiMap map; + + switch (index) { + case 0: + default: + break; + case 1: + map.insert(1, "a"); + map.insert(2, "bbb"); + map.insert(3, "cccccc"); + break; + case 2: + map.insert(1, "a"); + map.insert(2, "one"); + map.insert(2, "two"); + map.insert(2, "three"); + map.insert(3, "cccccc"); + } + return map; +} +#define MAX_MULTIMAP_DATA 3 + +void tst_QDataStream::stream_MultiMap_data() +{ + stream_data(MAX_MULTIMAP_DATA); +} + +void tst_QDataStream::stream_MultiMap() +{ + STREAM_IMPL(MultiMap); +} + +void tst_QDataStream::writeMultiMap(QDataStream* s) +{ + MultiMap test(MultiMapData(dataIndex(QTest::currentDataTag()))); + *s << test; + *s << test; +} + +void tst_QDataStream::readMultiMap(QDataStream *s) +{ + MultiMap S; + MultiMap test(MultiMapData(dataIndex(QTest::currentDataTag()))); + + *s >> S; + QCOMPARE(S, test); + *s >> S; + QCOMPARE(S, test); +} + // ************************************ typedef QHash<int, QString> Hash; @@ -707,16 +766,10 @@ static Hash HashData(int index) map.insert(2, "bbb"); map.insert(3, "cccccc"); break; - case 2: - map.insert(1, "a"); - map.insert(2, "one"); - map.insertMulti(2, "two"); - map.insertMulti(2, "three"); - map.insert(3, "cccccc"); } return map; } -#define MAX_HASH_DATA 3 +#define MAX_HASH_DATA 2 void tst_QDataStream::stream_Hash_data() { @@ -746,6 +799,60 @@ void tst_QDataStream::readHash(QDataStream *s) QCOMPARE(S, test); } +typedef QMultiHash<int, QString> MultiHash; + +static MultiHash MultiHashData(int index) +{ + MultiHash map; + + switch (index) { + case 0: + default: + break; + case 1: + map.insert(1, "a"); + map.insert(2, "bbb"); + map.insert(3, "cccccc"); + break; + case 2: + map.insert(1, "a"); + map.insert(2, "one"); + map.insert(2, "two"); + map.insert(2, "three"); + map.insert(3, "cccccc"); + } + return map; +} +#define MAX_MULTIHASH_DATA 3 + +void tst_QDataStream::stream_MultiHash_data() +{ + stream_data(MAX_HASH_DATA); +} + +void tst_QDataStream::stream_MultiHash() +{ + STREAM_IMPL(MultiHash); +} + +void tst_QDataStream::writeMultiHash(QDataStream* s) +{ + MultiHash test(MultiHashData(dataIndex(QTest::currentDataTag()))); + *s << test; + *s << test; +} + +void tst_QDataStream::readMultiHash(QDataStream *s) +{ + MultiHash S; + MultiHash test(MultiHashData(dataIndex(QTest::currentDataTag()))); + + *s >> S; + QCOMPARE(S, test); + *s >> S; + QCOMPARE(S, test); +} + // ************************************ static QEasingCurve QEasingCurveData(int index) @@ -2328,6 +2435,7 @@ void tst_QDataStream::setVersion() QDataStream latest; QFETCH(int, vers); +#if QT_CONFIG(shortcut) /* Test QKeySequence. */ @@ -2352,6 +2460,7 @@ void tst_QDataStream::setVersion() } QCOMPARE(deadbeef, 0xDEADBEEF); } +#endif // QT_CONFIG(shortcut) /* Test QPalette. @@ -3086,31 +3195,7 @@ void tst_QDataStream::status_QHash_QMap() break; \ } -#define LINKED_LIST_TEST(byteArray, initialStatus, expectedStatus, expectedList) \ - for (bool inTransaction = false;; inTransaction = true) { \ - { \ - LinkedList expectedLinkedList; \ - for (int i = 0; i < expectedList.count(); ++i) \ - expectedLinkedList << expectedList.at(i); \ - QByteArray ba = byteArray; \ - QDataStream stream(&ba, QIODevice::ReadOnly); \ - if (inTransaction) \ - stream.startTransaction(); \ - stream.setStatus(initialStatus); \ - stream >> linkedList; \ - QCOMPARE((int)stream.status(), (int)expectedStatus); \ - if (!inTransaction || stream.commitTransaction()) { \ - QCOMPARE(linkedList.size(), expectedLinkedList.size()); \ - QCOMPARE(linkedList, expectedLinkedList); \ - } else { \ - QVERIFY(linkedList.isEmpty()); \ - } \ - } \ - if (inTransaction) \ - break; \ - } - -void tst_QDataStream::status_QLinkedList_QList_QVector() +void tst_QDataStream::status_QList_QVector() { typedef QList<QString> List; typedef QVector<QString> Vector; @@ -3160,61 +3245,6 @@ void tst_QDataStream::status_QLinkedList_QList_QVector() LIST_TEST(QByteArray("\x00\x00\x00\x01", 4), QDataStream::ReadCorruptData, QDataStream::ReadCorruptData, List()); LIST_TEST(QByteArray("\x00\x00\x00\x01\x00\x00\x00\x01", 8), QDataStream::ReadPastEnd, QDataStream::ReadPastEnd, List()); } - -#if QT_DEPRECATED_SINCE(5, 15) -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED - // The same as above with QLinkedList - - typedef QLinkedList<QString> LinkedList; - LinkedList linkedList; - - // ok - { - List listWithEmptyString; - listWithEmptyString.append(""); - - List someList; - someList.append("J"); - someList.append("MN"); - - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x00", 4), QDataStream::Ok, QDataStream::Ok, List()); - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x01\x00\x00\x00\x00", 8), QDataStream::Ok, QDataStream::Ok, listWithEmptyString); - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x02\x00\x00\x00\x02\x00J" - "\x00\x00\x00\x04\x00M\x00N", 18), QDataStream::Ok, QDataStream::Ok, someList); - } - - // past end - { - LINKED_LIST_TEST(QByteArray(), QDataStream::Ok, QDataStream::ReadPastEnd, List()); - LINKED_LIST_TEST(QByteArray("\x00", 1), QDataStream::Ok, QDataStream::ReadPastEnd, List()); - LINKED_LIST_TEST(QByteArray("\x00\x00", 2), QDataStream::Ok, QDataStream::ReadPastEnd, List()); - LINKED_LIST_TEST(QByteArray("\x00\x00\x00", 3), QDataStream::Ok, QDataStream::ReadPastEnd, List()); - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x01", 4), QDataStream::Ok, QDataStream::ReadPastEnd, List()); - for (int i = 4; i < 12; ++i) { - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", i), QDataStream::Ok, QDataStream::ReadPastEnd, List()); - } - } - - // corrupt data - { - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x01\x00\x00\x00\x01", 8), QDataStream::Ok, QDataStream::ReadCorruptData, List()); - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x02\x00\x00\x00\x01\x00J" - "\x00\x00\x00\x02\x00M\x00N", 18), QDataStream::Ok, QDataStream::ReadCorruptData, List()); - } - - // test the previously latched error status is not affected by reading - { - List listWithEmptyString; - listWithEmptyString.append(""); - - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x01\x00\x00\x00\x00", 8), QDataStream::ReadPastEnd, QDataStream::ReadPastEnd, listWithEmptyString); - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x01", 4), QDataStream::ReadCorruptData, QDataStream::ReadCorruptData, List()); - LINKED_LIST_TEST(QByteArray("\x00\x00\x00\x01\x00\x00\x00\x01", 8), QDataStream::ReadPastEnd, QDataStream::ReadPastEnd, List()); - } - -QT_WARNING_POP -#endif } void tst_QDataStream::streamToAndFromQByteArray() @@ -3269,7 +3299,7 @@ void tst_QDataStream::streamRealDataTypes() stream.setVersion(QDataStream::Qt_4_2); stream << qreal(0) << qreal(1.0) << qreal(1.1) << qreal(3.14) << qreal(-3.14) << qreal(-1); stream << QPointF(3, 5) << QRectF(-1, -2, 3, 4) << (QPolygonF() << QPointF(0, 0) << QPointF(1, 2)); - stream << QMatrix().rotate(90).scale(2, 2); + stream << QTransform().rotate(90).scale(2, 2).asAffineMatrix(); stream << path; stream << picture; stream << QTextLength(QTextLength::VariableLength, 1.5); @@ -3283,7 +3313,7 @@ void tst_QDataStream::streamRealDataTypes() QPointF point; QRectF rect; QPolygonF polygon; - QMatrix matrix; + QTransform transform; QPainterPath p; QPicture pict; QTextLength textLength; @@ -3333,8 +3363,9 @@ void tst_QDataStream::streamRealDataTypes() QCOMPARE(rect, QRectF(-1, -2, 3, 4)); stream >> polygon; QCOMPARE((QVector<QPointF> &)polygon, (QPolygonF() << QPointF(0, 0) << QPointF(1, 2))); + auto matrix = transform.asAffineMatrix(); stream >> matrix; - QCOMPARE(matrix, QMatrix().rotate(90).scale(2, 2)); + QCOMPARE(transform, QTransform().rotate(90).scale(2, 2)); stream >> p; QCOMPARE(p, path); if (i == 1) { @@ -3356,10 +3387,7 @@ void tst_QDataStream::streamRealDataTypes() QCOMPARE(col, color); stream >> rGrad; QCOMPARE(rGrad.style(), radialBrush.style()); -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED - QCOMPARE(rGrad.matrix(), radialBrush.matrix()); -QT_WARNING_POP + QCOMPARE(rGrad.transform(), radialBrush.transform()); QCOMPARE(rGrad.gradient()->type(), radialBrush.gradient()->type()); QCOMPARE(rGrad.gradient()->stops(), radialBrush.gradient()->stops()); QCOMPARE(rGrad.gradient()->spread(), radialBrush.gradient()->spread()); @@ -3368,10 +3396,7 @@ QT_WARNING_POP QCOMPARE(((QRadialGradient *)rGrad.gradient())->radius(), ((QRadialGradient *)radialBrush.gradient())->radius()); stream >> cGrad; QCOMPARE(cGrad.style(), conicalBrush.style()); -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED - QCOMPARE(cGrad.matrix(), conicalBrush.matrix()); -QT_WARNING_POP + QCOMPARE(cGrad.transform(), conicalBrush.transform()); QCOMPARE(cGrad.gradient()->type(), conicalBrush.gradient()->type()); QCOMPARE(cGrad.gradient()->stops(), conicalBrush.gradient()->stops()); QCOMPARE(cGrad.gradient()->spread(), conicalBrush.gradient()->spread()); |