From 82b86960c051de99fca7c4dfa7af2c914937f5c8 Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Sat, 2 Oct 2021 18:10:20 +0300 Subject: QLocalSocket/Win: stop reading in close() After calling close(), the socket can enter 'Closing' state, in which we try to write buffered data before disconnecting. As the device is already closed, we must disable any pipe reader activity and clear the read buffer. Change-Id: I8994df32bf324325d54dd36cbe1a1ee3f08022d1 Reviewed-by: Oswald Buddenhagen --- tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tests/auto/network/socket') diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp index 5de1fa2b58..ed665253da 100644 --- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp @@ -1372,7 +1372,7 @@ void tst_QLocalSocket::delayedDisconnect() QVERIFY(serverSocket); connect(serverSocket, &QLocalSocket::aboutToClose, [serverSocket]() { QVERIFY(serverSocket->isOpen()); - QVERIFY(serverSocket->getChar(nullptr)); + QCOMPARE(serverSocket->bytesAvailable(), qint64(1)); }); QVERIFY(socket.putChar(0)); @@ -1386,6 +1386,7 @@ void tst_QLocalSocket::delayedDisconnect() serverSocket->close(); QCOMPARE(serverSocket->state(), QLocalSocket::UnconnectedState); QVERIFY(!serverSocket->isOpen()); + QCOMPARE(serverSocket->bytesAvailable(), qint64(0)); } void tst_QLocalSocket::removeServer() -- cgit v1.2.3