summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/socket/qtcpserver
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/network/socket/qtcpserver')
-rw-r--r--tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp b/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp
index ac27a621bb..1f68608542 100644
--- a/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp
+++ b/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp
@@ -115,6 +115,10 @@ private slots:
void serverAddress_data();
void serverAddress();
+
+ void qtbug6305_data() { serverAddress_data(); }
+ void qtbug6305();
+
private:
#ifndef QT_NO_BEARERMANAGEMENT
QNetworkSession *networkSession;
@@ -828,10 +832,28 @@ void tst_QTcpServer::serverAddress()
QFETCH(QHostAddress, listenAddress);
QFETCH(QHostAddress, serverAddress);
QTcpServer server;
+
+ // TODO: why does this QSKIP?
if (!server.listen(listenAddress))
QSKIP(qPrintable(server.errorString()));
QCOMPARE(server.serverAddress(), serverAddress);
}
+// on OS X, calling listen() multiple times would succeed each time, which is
+// most definitely not wanted.
+void tst_QTcpServer::qtbug6305()
+{
+ QFETCH_GLOBAL(bool, setProxy);
+ if (setProxy)
+ return;
+
+ QFETCH(QHostAddress, listenAddress);
+ QTcpServer server;
+ QVERIFY2(server.listen(listenAddress), qPrintable(server.errorString()));
+
+ QTcpServer server2;
+ QVERIFY(!server2.listen(listenAddress, server.serverPort())); // second listen should fail
+}
+
QTEST_MAIN(tst_QTcpServer)
#include "tst_qtcpserver.moc"