From e9a93e888da7a5cdabc2d5027d0f0532f41f25e7 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 6 Mar 2014 16:15:29 +0100 Subject: Increase timeout in tst_NetworkSelfTest. Try to fix frequently failing test: FAIL! : tst_NetworkSelfTest::ftpProxyServer() Failed to receive data in step 32: timeout tst_networkselftest.cpp(230) : failure location on Windows. Introduce timeout constant, add message. Change-Id: I709f0b34cd1cfe5d3c64cf61ccb7907bd616bc54 Reviewed-by: Peter Hartmann Reviewed-by: Richard J. Moore --- .../other/networkselftest/tst_networkselftest.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/auto/other/networkselftest/tst_networkselftest.cpp b/tests/auto/other/networkselftest/tst_networkselftest.cpp index 108ec466c9..11f726dcd9 100644 --- a/tests/auto/other/networkselftest/tst_networkselftest.cpp +++ b/tests/auto/other/networkselftest/tst_networkselftest.cpp @@ -170,7 +170,9 @@ static QString prettyByteArray(const QByteArray &array) return result; } -static bool doSocketRead(QTcpSocket *socket, int minBytesAvailable, int timeout = 4000) +enum { defaultReadTimeoutMS = 4000 }; + +static bool doSocketRead(QTcpSocket *socket, int minBytesAvailable, int timeout = defaultReadTimeoutMS) { QElapsedTimer timer; timer.start(); @@ -185,6 +187,15 @@ static bool doSocketRead(QTcpSocket *socket, int minBytesAvailable, int timeout } } +static QByteArray msgDoSocketReadFailed(const QString &host, quint16 port, + int step, int minBytesAvailable) +{ + return "Failed to receive " + + QByteArray::number(minBytesAvailable) + " bytes from " + + host.toLatin1() + ':' + QByteArray::number(port) + + " in step " + QByteArray::number(step) + ": timeout"; +} + static bool doSocketFlush(QTcpSocket *socket, int timeout = 4000) { #ifndef QT_NO_SSL @@ -226,8 +237,8 @@ static void netChat(int port, const QList &chat) switch (it->type) { case Chat::Expect: { qDebug() << i << "Expecting" << prettyByteArray(it->data); - if (!doSocketRead(&socket, it->data.length())) - QFAIL(QString("Failed to receive data in step %1: timeout").arg(i).toLocal8Bit()); + if (!doSocketRead(&socket, it->data.length(), 3 * defaultReadTimeoutMS)) + QFAIL(msgDoSocketReadFailed(QtNetworkSettings::serverName(), port, i, it->data.length())); // pop that many bytes off the socket QByteArray received = socket.read(it->data.length()); @@ -245,7 +256,7 @@ static void netChat(int port, const QList &chat) while (true) { // scan the buffer until we have our string if (!doSocketRead(&socket, it->data.length())) - QFAIL(QString("Failed to receive data in step %1: timeout").arg(i).toLocal8Bit()); + QFAIL(msgDoSocketReadFailed(QtNetworkSettings::serverName(), port, i, it->data.length())); QByteArray buffer; buffer.resize(socket.bytesAvailable()); @@ -266,7 +277,7 @@ static void netChat(int port, const QList &chat) case Chat::SkipBytes: { qDebug() << i << "Skipping" << it->value << "bytes"; if (!doSocketRead(&socket, it->value)) - QFAIL(QString("Failed to receive data in step %1: timeout").arg(i).toLocal8Bit()); + QFAIL(msgDoSocketReadFailed(QtNetworkSettings::serverName(), port, i, it->value)); // now discard the bytes QByteArray buffer = socket.read(it->value); -- cgit v1.2.3