tst_qsslsocket: fix racy test
In this threaded setup the server can sometimes have the data before it calls "waitForReadyRead", what happens then is that we fail the wait and as a result the test fails overall. Let's check if we actually got some data after all and then continue if we did. Since both the client and the server currently wait the same amount of time (2s) the max timeout for the client was increased by 0.5s so it has some time to notice that the server got the message. Change-Id: Ib5915958853413047aa5a7574712585bcae28f79 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commite79b1dcdf5
) Reviewed-by: Simo Fält <simo.falt@qt.io> (cherry picked from commitd53b8b77bc
) Change-Id: I2f6ffb8e0a9b4d591edb6925e48baffcefc14511 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This commit is contained in:
parent
2c5d21be43
commit
fc9ae22c88
@ -2096,7 +2096,7 @@ protected:
|
||||
|
||||
// delayed reading data
|
||||
QTest::qSleep(100);
|
||||
if (!socket->waitForReadyRead(2000))
|
||||
if (!socket->waitForReadyRead(2000) && socket->bytesAvailable() == 0)
|
||||
return; // error
|
||||
socket->readAll();
|
||||
dataReadSemaphore.release();
|
||||
@ -2167,7 +2167,7 @@ void tst_QSslSocket::waitForMinusOne()
|
||||
socket.write("How are you doing?");
|
||||
QVERIFY(socket.bytesToWrite() != 0);
|
||||
QVERIFY(socket.waitForBytesWritten(-1));
|
||||
QVERIFY(server.dataReadSemaphore.tryAcquire(1, 2000));
|
||||
QVERIFY(server.dataReadSemaphore.tryAcquire(1, 2500));
|
||||
|
||||
// third verification: it should wait for 100 ms:
|
||||
QVERIFY(socket.waitForReadyRead(-1));
|
||||
|
Loading…
Reference in New Issue
Block a user