summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/gui/image/qimage/tst_qimage.cpp74
-rw-r--r--tests/auto/network/socket/qtcpsocket/BLACKLIST13
-rw-r--r--tests/auto/network/socket/qtcpsocket/test/test.pro2
-rw-r--r--tests/auto/network/socket/qudpsocket/BLACKLIST26
-rw-r--r--tests/auto/network/socket/qudpsocket/test/test.pro2
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp27
-rw-r--r--tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp39
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 );