diff options
author | Daniel Teske <daniel.teske@theqtcompany.com> | 2014-12-08 15:29:19 +0100 |
---|---|---|
committer | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-03-09 17:11:54 +0000 |
commit | ed0c0070f9b05c647019270dfc42073d071c830a (patch) | |
tree | 59a4996d3de61489254b3cb8a85b6d2c83a19bd3 /tests/auto/other/networkselftest | |
parent | 5bf9528b9164bd888e991552b66d6237e84a7ee2 (diff) | |
download | qtbase-ed0c0070f9b05c647019270dfc42073d071c830a.tar.gz |
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/auto/other/networkselftest')
-rw-r--r-- | tests/auto/other/networkselftest/networkselftest.pro | 2 | ||||
-rw-r--r-- | tests/auto/other/networkselftest/tst_networkselftest.cpp | 11 |
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; } } |