summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r--tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp44
-rw-r--r--tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp1
-rw-r--r--tests/auto/corelib/plugin/quuid/tst_quuid.cpp20
-rw-r--r--tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp20
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