From a320b54bb670c3a9cbb44346ab092076f20ef82a Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Tue, 21 Sep 2021 19:55:39 +0300 Subject: QLocalSocket: reorder device closing To allow reading from a slot connected to the aboutToClose() signal, we should call QIODevice::close() just before closing the inner device. This patch amends 21f3ff65b8df777b5726a68b09bbee39f1a893ec. Pick-to: 6.2 Change-Id: Ic8cd00497e1bdf923b980c26e9ca874b77e82f89 Reviewed-by: Oswald Buddenhagen --- tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tests/auto') diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp index 42c634def6..5de1fa2b58 100644 --- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp @@ -1370,12 +1370,22 @@ void tst_QLocalSocket::delayedDisconnect() QVERIFY(server.waitForNewConnection(3000)); QLocalSocket *serverSocket = server.nextPendingConnection(); QVERIFY(serverSocket); + connect(serverSocket, &QLocalSocket::aboutToClose, [serverSocket]() { + QVERIFY(serverSocket->isOpen()); + QVERIFY(serverSocket->getChar(nullptr)); + }); + QVERIFY(socket.putChar(0)); socket.disconnectFromServer(); QCOMPARE(socket.state(), QLocalSocket::ClosingState); QVERIFY(socket.waitForDisconnected(3000)); QCOMPARE(socket.state(), QLocalSocket::UnconnectedState); QVERIFY(socket.isOpen()); + + QVERIFY(serverSocket->waitForReadyRead(3000)); + serverSocket->close(); + QCOMPARE(serverSocket->state(), QLocalSocket::UnconnectedState); + QVERIFY(!serverSocket->isOpen()); } void tst_QLocalSocket::removeServer() -- cgit v1.2.3