summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@theqtcompany.com>2014-12-08 15:29:19 +0100
committerDaniel Teske <daniel.teske@theqtcompany.com>2015-03-09 17:11:54 +0000
commited0c0070f9b05c647019270dfc42073d071c830a (patch)
tree59a4996d3de61489254b3cb8a85b6d2c83a19bd3 /tests
parent5bf9528b9164bd888e991552b66d6237e84a7ee2 (diff)
Introduce qt_subtract_from_timeout to reduce code duplication.
The same qt_timeout_value function was copied 5 times in qtbase's code, so provide a common implementation in QIoDevice that can be used by everyone. This commit also corrects the remaining time calculation in QProcess::waitForBytesWritten and QProcess::waitForFinished by using this new function. For QProcess::waitForFinished, if the process started within almost exactly the timeout time passed to waitForFinished, msecs - stopWatch.elapsed() would be -1, which is a special value. Change-Id: I7b76ee6bae695eafdd02e3db03e2ff1e23a7f40c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/other/networkselftest/networkselftest.pro2
-rw-r--r--tests/auto/other/networkselftest/tst_networkselftest.cpp11
2 files changed, 8 insertions, 5 deletions
diff --git a/tests/auto/other/networkselftest/networkselftest.pro b/tests/auto/other/networkselftest/networkselftest.pro
index c8b870128d..22208e02fb 100644
--- a/tests/auto/other/networkselftest/networkselftest.pro
+++ b/tests/auto/other/networkselftest/networkselftest.pro
@@ -2,7 +2,7 @@ CONFIG += testcase
TARGET = tst_networkselftest
SOURCES += tst_networkselftest.cpp
-QT = core network testlib
+QT = core core-private network testlib
win32:CONFIG += insignificant_test # QTBUG-27571
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/other/networkselftest/tst_networkselftest.cpp b/tests/auto/other/networkselftest/tst_networkselftest.cpp
index 36c9027aca..5472b74c07 100644
--- a/tests/auto/other/networkselftest/tst_networkselftest.cpp
+++ b/tests/auto/other/networkselftest/tst_networkselftest.cpp
@@ -34,6 +34,7 @@
#include <QtTest/QtTest>
#include <QtNetwork/QtNetwork>
#include <QtCore/QDateTime>
+#include <QtCore/private/qiodevice_p.h>
#ifndef QT_NO_BEARERMANAGEMENT
#include <QtNetwork/qnetworkconfigmanager.h>
@@ -171,10 +172,11 @@ static bool doSocketRead(QTcpSocket *socket, int minBytesAvailable, int timeout
forever {
if (socket->bytesAvailable() >= minBytesAvailable)
return true;
+ timeout = qt_subtract_from_timeout(timeout, timer.elapsed());
if (socket->state() == QAbstractSocket::UnconnectedState
- || timer.elapsed() >= timeout)
+ || timeout == 0)
return false;
- if (!socket->waitForReadyRead(timeout - timer.elapsed()))
+ if (!socket->waitForReadyRead(timeout))
return false;
}
}
@@ -202,10 +204,11 @@ static bool doSocketFlush(QTcpSocket *socket, int timeout = 4000)
#endif
)
return true;
+ timeout = qt_subtract_from_timeout(timeout, timer.elapsed());
if (socket->state() == QAbstractSocket::UnconnectedState
- || timer.elapsed() >= timeout)
+ || timeout == 0)
return false;
- if (!socket->waitForBytesWritten(timeout - timer.elapsed()))
+ if (!socket->waitForBytesWritten(timeout))
return false;
}
}