summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMÃ¥rten Nordheim <marten.nordheim@qt.io>2020-11-24 17:21:41 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-12-01 18:43:17 +0000
commitb874ff67d0fc406c19c94eab7384c4e97fdab6b2 (patch)
treecb49d2e061a397cf50e8f931da6612d3623bfac0 /tests
parent2ef324521ffbad03445103109c9d094f77a462dc (diff)
tst_qtcpserver: Test pauseAccepting/resumeAccepting
Currently untested The socks case is odd: after accepting the first connection it shows as unconnected. Details as for why is unknown, out of scope of adding this test. Change-Id: I0e7658f23b89f3af8db379b001ee33a844f3bec4 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 6035fd8f2c23357c46c401fb7120af83e5cf5887) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp b/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp
index 1bf6777040..3ad206ccfe 100644
--- a/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp
+++ b/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp
@@ -113,6 +113,8 @@ private slots:
void canAccessPendingConnectionsWhileNotListening();
+ void pauseAccepting();
+
private:
bool shouldSkipIpv6TestsForBrokenGetsockopt();
#ifdef SHOULD_CHECK_SYSCALL_SUPPORT
@@ -1046,5 +1048,36 @@ void tst_QTcpServer::canAccessPendingConnectionsWhileNotListening()
QCOMPARE(&socket, server.nextPendingConnection());
}
+void tst_QTcpServer::pauseAccepting()
+{
+ QTcpServer server;
+ QSignalSpy spy(&server, &QTcpServer::newConnection);
+ QVERIFY(server.listen());
+
+ QFETCH_GLOBAL(bool, setProxy);
+ const auto address = QHostAddress(setProxy ? QtNetworkSettings::socksProxyServerIp()
+ : QHostAddress::LocalHost);
+
+ const int NumSockets = 6;
+ QTcpSocket sockets[NumSockets];
+ sockets[0].connectToHost(address, server.serverPort());
+ QVERIFY(spy.wait());
+ QCOMPARE(spy.count(), 1);
+
+ server.pauseAccepting();
+ for (int i = 1; i < NumSockets; ++i)
+ sockets[i].connectToHost(address, server.serverPort());
+ QVERIFY(!spy.wait(400));
+ QCOMPARE(spy.count(), 1);
+
+ server.resumeAccepting();
+ if (setProxy) {
+ QEXPECT_FAIL("", "The socks proxy does weird things after accepting the first connection",
+ Abort);
+ }
+ QVERIFY(spy.wait());
+ QCOMPARE(spy.count(), 6);
+}
+
QTEST_MAIN(tst_QTcpServer)
#include "tst_qtcpserver.moc"