summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/socket
diff options
context:
space:
mode:
authorAlex Trotsenko <alex1973tr@gmail.com>2021-09-21 19:55:39 +0300
committerOswald Buddenhagen <oswald.buddenhagen@gmx.de>2021-09-21 21:40:27 +0000
commita320b54bb670c3a9cbb44346ab092076f20ef82a (patch)
treea18b0397e4c5ea04725d357da4b31bbb1242fe14 /tests/auto/network/socket
parent8910a01c7212e1fb2d5192b19ef6179dd1b7e456 (diff)
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 <oswald.buddenhagen@gmx.de>
Diffstat (limited to 'tests/auto/network/socket')
-rw-r--r--tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp10
1 files changed, 10 insertions, 0 deletions
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()