summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-11-04 20:18:14 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2015-11-04 20:18:14 +0100
commit4159ee840549df11287294f0928e90f35f3e06ff (patch)
tree4a3947e37d54bdb78b4042e9ced20dbf181b5a2c /tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp
parent59dbf1786f22ec4ac88d8f9d38cac5cfb82acaea (diff)
parentc8c39ecc37c156ac2677de09a26548dfc274b564 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: config.tests/unix/ptrsize.test configure src/corelib/global/qnamespace.h src/network/socket/qabstractsocket.cpp tests/auto/other/networkselftest/networkselftest.pro Change-Id: Ic78abb4a34f9068567cea876861d4220f5a07672
Diffstat (limited to 'tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp')
-rw-r--r--tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp
index 7bf3ee4af4..c70fbce46c 100644
--- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp
+++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp
@@ -98,6 +98,7 @@ private slots:
void removeServer();
void recycleServer();
+ void recycleClientSocket();
void multiConnect();
void writeOnlySocket();
@@ -955,6 +956,34 @@ void tst_QLocalSocket::recycleServer()
QVERIFY(server.nextPendingConnection() != 0);
}
+void tst_QLocalSocket::recycleClientSocket()
+{
+ const QByteArrayList lines = QByteArrayList() << "Have you heard of that new band"
+ << "\"1023 Megabytes\"?"
+ << "They haven't made it to a gig yet.";
+ QLocalServer server;
+ const QString serverName = QStringLiteral("recycleClientSocket");
+ QVERIFY(server.listen(serverName));
+ QLocalSocket client;
+ QSignalSpy clientReadyReadSpy(&client, SIGNAL(readyRead()));
+ QSignalSpy clientErrorSpy(&client, SIGNAL(error(QLocalSocket::LocalSocketError)));
+ for (int i = 0; i < lines.count(); ++i) {
+ client.abort();
+ clientReadyReadSpy.clear();
+ client.connectToServer(serverName);
+ QVERIFY(client.waitForConnected());
+ QVERIFY(server.waitForNewConnection());
+ QLocalSocket *serverSocket = server.nextPendingConnection();
+ QVERIFY(serverSocket);
+ connect(serverSocket, &QLocalSocket::disconnected, &QLocalSocket::deleteLater);
+ serverSocket->write(lines.at(i));
+ serverSocket->flush();
+ QVERIFY(clientReadyReadSpy.wait());
+ QCOMPARE(client.readAll(), lines.at(i));
+ QVERIFY(clientErrorSpy.isEmpty());
+ }
+}
+
void tst_QLocalSocket::multiConnect()
{
QLocalServer server;