speed up tst_QLocalSocket::readBufferOverflow

Ifdef out waitForBytesWritten on Windows.
See comment in source.

Change-Id: I7a2268d2634c2524cd8291c72dd9708e430e314e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
bb10
Joerg Bornemann 2012-11-02 12:25:58 +01:00 committed by The Qt Project
parent b2189acfc1
commit 000025ca1e
1 changed files with 9 additions and 0 deletions

View File

@ -555,7 +555,16 @@ void tst_QLocalSocket::readBufferOverflow()
char buffer[dataBufferSize];
memset(buffer, 0, dataBufferSize);
serverSocket->write(buffer, dataBufferSize);
#ifndef Q_OS_WIN
// The data is not immediately sent, but buffered.
// On Windows, the flushing is done asynchronously by a separate thread.
// However, this operation will never complete as long as the data is not
// read by the other end, so the call below always times out.
// On Unix, the flushing is synchronous and thus needs to be done before
// attempting to read the data in the same thread. Buffering by the OS
// prevents the deadlock seen on Windows.
serverSocket->waitForBytesWritten();
#endif
// wait until the first 128 bytes are ready to read
QVERIFY(client.waitForReadyRead());