diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/gui/image/qimage/tst_qimage.cpp | 74 | ||||
-rw-r--r-- | tests/auto/network/socket/qtcpsocket/BLACKLIST | 13 | ||||
-rw-r--r-- | tests/auto/network/socket/qtcpsocket/test/test.pro | 2 | ||||
-rw-r--r-- | tests/auto/network/socket/qudpsocket/BLACKLIST | 26 | ||||
-rw-r--r-- | tests/auto/network/socket/qudpsocket/test/test.pro | 2 | ||||
-rw-r--r-- | tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp | 27 | ||||
-rw-r--r-- | tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp | 39 |
7 files changed, 172 insertions, 11 deletions
diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp index 16cbebeed5..9e4a1abbb1 100644 --- a/tests/auto/gui/image/qimage/tst_qimage.cpp +++ b/tests/auto/gui/image/qimage/tst_qimage.cpp @@ -2493,6 +2493,35 @@ void tst_QImage::inplaceRgbSwapped() } QCOMPARE(imageSwapped.constScanLine(0), orginalPtr); + + for (int rw = 0; rw <= 1; rw++) { + // Test attempted inplace conversion of images created on existing buffer + uchar *volatileData = 0; + QImage orig = imageSwapped; + QImage dataSwapped; + { + QVERIFY(!orig.isNull()); + volatileData = new uchar[orig.byteCount()]; + memcpy(volatileData, orig.constBits(), orig.byteCount()); + + QImage dataImage; + if (rw) + dataImage = QImage(volatileData, orig.width(), orig.height(), orig.format()); + else + dataImage = QImage((const uchar *)volatileData, orig.width(), orig.height(), orig.format()); + + if (orig.colorCount()) + dataImage.setColorTable(orig.colorTable()); + + dataSwapped = std::move(dataImage).rgbSwapped(); + QVERIFY(!dataSwapped.isNull()); + delete[] volatileData; + } + + QVERIFY2(dataSwapped.constBits() != volatileData, rw ? "non-const" : "const"); + QCOMPARE(dataSwapped, orig.rgbSwapped()); + } + #endif } @@ -2575,6 +2604,35 @@ void tst_QImage::inplaceMirrored() } } QCOMPARE(imageMirrored.constScanLine(0), originalPtr); + + for (int rw = 0; rw <= 1; rw++) { + // Test attempted inplace conversion of images created on existing buffer + uchar *volatileData = 0; + QImage orig = imageMirrored; + QImage dataSwapped; + { + QVERIFY(!orig.isNull()); + volatileData = new uchar[orig.byteCount()]; + memcpy(volatileData, orig.constBits(), orig.byteCount()); + + QImage dataImage; + if (rw) + dataImage = QImage(volatileData, orig.width(), orig.height(), orig.format()); + else + dataImage = QImage((const uchar *)volatileData, orig.width(), orig.height(), orig.format()); + + if (orig.colorCount()) + dataImage.setColorTable(orig.colorTable()); + + dataSwapped = std::move(dataImage).mirrored(swap_horizontal, swap_vertical); + QVERIFY(!dataSwapped.isNull()); + delete[] volatileData; + } + + QVERIFY2(dataSwapped.constBits() != volatileData, rw ? "non-const" : "const"); + QCOMPARE(dataSwapped, orig.mirrored(swap_horizontal, swap_vertical)); + } + #endif } @@ -2727,16 +2785,24 @@ void tst_QImage::inplaceRgbConversion() static const quint32 readOnlyData[] = { 0xff0102ffU, 0xff0506ffU, 0xff0910ffU, 0xff1314ffU }; quint32 readWriteData[] = { 0xff0102ffU, 0xff0506ffU, 0xff0910ffU, 0xff1314ffU }; - QImage roImage((const uchar *)readOnlyData, 2, 2, format); - QImage roInplaceConverted = std::move(roImage).convertToFormat(dest_format); + QImage roInplaceConverted; + QImage rwInplaceConverted; + + { + QImage roImage((const uchar *)readOnlyData, 2, 2, format); + roInplaceConverted = std::move(roImage).convertToFormat(dest_format); - QImage rwImage((uchar *)readWriteData, 2, 2, format); - QImage rwInplaceConverted = std::move(rwImage).convertToFormat(dest_format); + QImage rwImage((uchar *)readWriteData, 2, 2, format); + rwInplaceConverted = std::move(rwImage).convertToFormat(dest_format); + } QImage roImage2((const uchar *)readOnlyData, 2, 2, format); QImage normalConverted = roImage2.convertToFormat(dest_format); + QVERIFY(roInplaceConverted.constBits() != (const uchar *)readOnlyData); QCOMPARE(normalConverted, roInplaceConverted); + + QVERIFY(rwInplaceConverted.constBits() != (const uchar *)readWriteData); QCOMPARE(normalConverted, rwInplaceConverted); } #endif diff --git a/tests/auto/network/socket/qtcpsocket/BLACKLIST b/tests/auto/network/socket/qtcpsocket/BLACKLIST new file mode 100644 index 0000000000..5fc2589323 --- /dev/null +++ b/tests/auto/network/socket/qtcpsocket/BLACKLIST @@ -0,0 +1,13 @@ +[bindThenResolveHost:first-fail] +windows +[bind:[::]] +windows +[bind:[::]:randomport] +windows +[invalidProxy:socks5-on-http] +windows +[disconnectWhileLookingUp] +windows +[timeoutConnect:ip] +windows +] diff --git a/tests/auto/network/socket/qtcpsocket/test/test.pro b/tests/auto/network/socket/qtcpsocket/test/test.pro index 325abcaab8..3e64b87b53 100644 --- a/tests/auto/network/socket/qtcpsocket/test/test.pro +++ b/tests/auto/network/socket/qtcpsocket/test/test.pro @@ -21,5 +21,3 @@ win32 { } else { DESTDIR = ../ } - -win32: CONFIG += insignificant_test # Hangs in release builds diff --git a/tests/auto/network/socket/qudpsocket/BLACKLIST b/tests/auto/network/socket/qudpsocket/BLACKLIST index 3e936aebf6..6669b094ce 100644 --- a/tests/auto/network/socket/qudpsocket/BLACKLIST +++ b/tests/auto/network/socket/qudpsocket/BLACKLIST @@ -1,8 +1,28 @@ [multicast:same bind, group ipv6 address] * -[multicast:valid bind, group ipv6 address] +[multicast] osx -[multicast:dual bind, group ipv6 address] +[writeDatagramToNonExistingPeer] +windows osx -[multicast:same bind, group ipv4 address] +[asyncReadDatagram] +windows osx +[multicastLeaveAfterClose] +osx +[readyRead] +osx +[readyReadForEmptyDatagram] +osx +[echo] +linux +osx +[ipv6Loop] +osx +[loop] +osx +[broadcasting] +osx +[zeroLengthDatagram] +osx + diff --git a/tests/auto/network/socket/qudpsocket/test/test.pro b/tests/auto/network/socket/qudpsocket/test/test.pro index 8ad16c652d..e4812416dc 100644 --- a/tests/auto/network/socket/qudpsocket/test/test.pro +++ b/tests/auto/network/socket/qudpsocket/test/test.pro @@ -22,5 +22,3 @@ wince* { } TARGET = tst_qudpsocket - -CONFIG+=insignificant_test # QTBUG-25367, QTBUG-25368 diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp index 17a3f3a4d0..e85c6b9922 100644 --- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp @@ -206,6 +206,7 @@ private slots: void ignoreSslErrorsList(); void ignoreSslErrorsListWithSlot_data(); void ignoreSslErrorsListWithSlot(); + void abortOnSslErrors(); void readFromClosedSocket(); void writeBigChunk(); void blacklistedCertificates(); @@ -248,6 +249,11 @@ protected slots: { socket->ignoreSslErrors(); } + void abortOnErrorSlot() + { + QSslSocket *sock = static_cast<QSslSocket *>(sender()); + sock->abort(); + } void untrustedWorkaroundSlot(const QList<QSslError> &errors) { if (errors.size() == 1 && @@ -2305,6 +2311,27 @@ void tst_QSslSocket::ignoreSslErrorsListWithSlot() QSKIP("Skipping flaky test - See QTBUG-29941"); } +void tst_QSslSocket::abortOnSslErrors() +{ + QFETCH_GLOBAL(bool, setProxy); + if (setProxy) + return; + + SslServer server; + QVERIFY(server.listen()); + + QSslSocket clientSocket; + connect(&clientSocket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(abortOnErrorSlot())); + clientSocket.connectToHostEncrypted("127.0.0.1", server.serverPort()); + clientSocket.ignoreSslErrors(); + + QEventLoop loop; + QTimer::singleShot(1000, &loop, SLOT(quit())); + loop.exec(); + + QCOMPARE(clientSocket.state(), QAbstractSocket::UnconnectedState); +} + // make sure a closed socket has no bytesAvailable() // related to https://bugs.webkit.org/show_bug.cgi?id=28016 void tst_QSslSocket::readFromClosedSocket() diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index be3a86f4de..078a629df5 100644 --- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -228,6 +228,9 @@ private slots: void QTBUG_36211_data() { generic_data("QPSQL"); } void QTBUG_36211(); + void QTBUG_53969_data() { generic_data("QMYSQL"); } + void QTBUG_53969(); + void sqlite_constraint_data() { generic_data("QSQLITE"); } void sqlite_constraint(); @@ -3647,6 +3650,42 @@ void tst_QSqlQuery::QTBUG_36211() } } +void tst_QSqlQuery::QTBUG_53969() +{ + QFETCH( QString, dbName ); + QVector<int> values = QVector<int>() << 10 << 20 << 127 << 128 << 1, tableValues; + QSqlDatabase db = QSqlDatabase::database( dbName ); + CHECK_DATABASE( db ); + tableValues.reserve(values.size()); + if (tst_Databases::getDatabaseType(db) == QSqlDriver::MySqlServer) { + const QString tableName(qTableName("bug53969", __FILE__, db)); + tst_Databases::safeDropTable( db, tableName ); + + QSqlQuery q(db); + QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (id INT AUTO_INCREMENT PRIMARY KEY, " + "test_number TINYINT(3) UNSIGNED)") + .arg(tableName))); + + QVERIFY_SQL(q, prepare("INSERT INTO " + tableName + " (test_number) VALUES (:value)")); + + QVector<int>::iterator begin = values.begin(), end = values.end(), it; + for (it = begin; it != end; ++it) { + q.bindValue(":value", *it); + QVERIFY_SQL(q, exec()); + } + + QVERIFY_SQL(q, prepare("SELECT test_number FROM " + tableName)); + QVERIFY_SQL(q, exec()); + + while (q.next()) { + bool ok; + tableValues.push_back(q.value(0).toUInt(&ok)); + QVERIFY(ok); + } + QCOMPARE(values, tableValues); + } +} + void tst_QSqlQuery::oraOCINumber() { QFETCH( QString, dbName ); |