diff options
Diffstat (limited to 'tests/auto/corelib')
4 files changed, 82 insertions, 3 deletions
diff --git a/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp b/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp index 30c1f2be59..f756588e80 100644 --- a/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp +++ b/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp @@ -58,6 +58,7 @@ private slots: void readLine2(); void peekBug(); + void readAllKeepPosition(); }; void tst_QIODevice::initTestCase() @@ -584,5 +585,48 @@ void tst_QIODevice::peekBug() } +class SequentialReadBuffer : public QIODevice +{ +public: + SequentialReadBuffer(const char *data) : QIODevice(), buf(data), offset(0) { } + + bool isSequential() const Q_DECL_OVERRIDE { return true; } + const QByteArray &buffer() const { return buf; } + +protected: + qint64 readData(char *data, qint64 maxSize) Q_DECL_OVERRIDE + { + maxSize = qMin(maxSize, qint64(buf.size() - offset)); + memcpy(data, buf.constData() + offset, maxSize); + offset += maxSize; + return maxSize; + } + qint64 writeData(const char * /* data */, qint64 /* maxSize */) Q_DECL_OVERRIDE + { + return -1; + } + +private: + QByteArray buf; + int offset; +}; + +// Test readAll() on position change for sequential device +void tst_QIODevice::readAllKeepPosition() +{ + SequentialReadBuffer buffer("Hello world!"); + buffer.open(QIODevice::ReadOnly); + char c; + + QVERIFY(buffer.getChar(&c)); + QCOMPARE(buffer.pos(), qint64(0)); + buffer.ungetChar(c); + QCOMPARE(buffer.pos(), qint64(0)); + + QByteArray resultArray = buffer.readAll(); + QCOMPARE(buffer.pos(), qint64(0)); + QCOMPARE(resultArray, buffer.buffer()); +} + QTEST_MAIN(tst_QIODevice) #include "tst_qiodevice.moc" diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp index e969724117..a0edf29607 100644 --- a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp +++ b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp @@ -460,6 +460,7 @@ void tst_QMimeDatabase::mimeTypeForData_data() QTest::newRow("tnef data, needs smi >= 0.20") << QByteArray("\x78\x9f\x3e\x22") << "application/vnd.ms-tnef"; QTest::newRow("PDF magic") << QByteArray("%PDF-") << "application/pdf"; QTest::newRow("PHP, High-priority rule") << QByteArray("<?php") << "application/x-php"; + QTest::newRow("diff\\t") << QByteArray("diff\t") << "text/x-patch"; QTest::newRow("unknown") << QByteArray("\001abc?}") << "application/octet-stream"; } diff --git a/tests/auto/corelib/plugin/quuid/tst_quuid.cpp b/tests/auto/corelib/plugin/quuid/tst_quuid.cpp index 8f37b265f6..f31aed6976 100644 --- a/tests/auto/corelib/plugin/quuid/tst_quuid.cpp +++ b/tests/auto/corelib/plugin/quuid/tst_quuid.cpp @@ -260,19 +260,33 @@ void tst_QUuid::generate() void tst_QUuid::less() { - QVERIFY( !(uuidA < uuidB) ); + QVERIFY( uuidB < uuidA); + QVERIFY( uuidB <= uuidA); + QVERIFY(!(uuidA < uuidB) ); + QVERIFY(!(uuidA <= uuidB)); QUuid null_uuid; QVERIFY(null_uuid < uuidA); // Null uuid is always less than a valid one + QVERIFY(null_uuid <= uuidA); + + QVERIFY(null_uuid <= null_uuid); + QVERIFY(uuidA <= uuidA); } void tst_QUuid::more() { - QVERIFY( uuidA > uuidB ); + QVERIFY( uuidA > uuidB); + QVERIFY( uuidA >= uuidB); + QVERIFY(!(uuidB > uuidA)); + QVERIFY(!(uuidB >= uuidA)); QUuid null_uuid; - QVERIFY( !(null_uuid > uuidA) ); // Null uuid is always less than a valid one + QVERIFY(!(null_uuid > uuidA)); // Null uuid is always less than a valid one + QVERIFY(!(null_uuid >= uuidA)); + + QVERIFY(null_uuid >= null_uuid); + QVERIFY(uuidA >= uuidA); } diff --git a/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp b/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp index 449fefbaa2..719daad3b6 100644 --- a/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp +++ b/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp @@ -840,6 +840,7 @@ void tst_QVarLengthArray::initializeList() T val3(101); T val4(114); + // QVarLengthArray(std::initializer_list<>) QVarLengthArray<T> v1 {val1, val2, val3}; QCOMPARE(v1, QVarLengthArray<T>() << val1 << val2 << val3); QCOMPARE(v1, (QVarLengthArray<T> {val1, val2, val3})); @@ -851,6 +852,25 @@ void tst_QVarLengthArray::initializeList() QVarLengthArray<T> v4({}); QCOMPARE(v4.size(), 0); + + // operator=(std::initializer_list<>) + + QVarLengthArray<T> v5({val2, val1}); + v1 = { val1, val2 }; // make array smaller + v4 = { val1, val2 }; // make array bigger + v5 = { val1, val2 }; // same size + QCOMPARE(v1, QVarLengthArray<T>() << val1 << val2); + QCOMPARE(v4, v1); + QCOMPARE(v5, v1); + + QVarLengthArray<T, 1> v6 = { val1 }; + v6 = { val1, val2 }; // force allocation on heap + QCOMPARE(v6.size(), 2); + QCOMPARE(v6.first(), val1); + QCOMPARE(v6.last(), val2); + + v6 = {}; // assign empty + QCOMPARE(v6.size(), 0); #else QSKIP("This tests requires a compiler that supports initializer lists."); #endif |