summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/kernel/noqteventloop
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/kernel/noqteventloop')
-rw-r--r--tests/auto/gui/kernel/noqteventloop/noqteventloop.pro2
-rw-r--r--tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp34
2 files changed, 35 insertions, 1 deletions
diff --git a/tests/auto/gui/kernel/noqteventloop/noqteventloop.pro b/tests/auto/gui/kernel/noqteventloop/noqteventloop.pro
index de5715e147..a42b359f29 100644
--- a/tests/auto/gui/kernel/noqteventloop/noqteventloop.pro
+++ b/tests/auto/gui/kernel/noqteventloop/noqteventloop.pro
@@ -1,7 +1,7 @@
CONFIG += testcase
TARGET = tst_noqteventloop
-QT += core-private gui-private testlib
+QT += core-private network gui-private testlib
SOURCES += tst_noqteventloop.cpp
diff --git a/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp b/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp
index 0257a50924..bf8d31a91f 100644
--- a/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp
+++ b/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp
@@ -36,6 +36,9 @@
#include <QEvent>
#include <QtCore/qthread.h>
#include <QtGui/qguiapplication.h>
+#include <QtNetwork/qtcpserver.h>
+#include <QtNetwork/qtcpsocket.h>
+#include <QtCore/qelapsedtimer.h>
#include <QtCore/qt_windows.h>
@@ -45,6 +48,7 @@ class tst_NoQtEventLoop : public QObject
private slots:
void consumeMouseEvents();
+ void consumeSocketEvents();
};
@@ -255,6 +259,36 @@ void tst_NoQtEventLoop::consumeMouseEvents()
}
+void tst_NoQtEventLoop::consumeSocketEvents()
+{
+ int argc = 1;
+ char *argv[] = { const_cast<char *>("test"), 0 };
+ QGuiApplication app(argc, argv);
+ QTcpServer server;
+ QTcpSocket client;
+
+ QVERIFY(server.listen(QHostAddress::LocalHost));
+ client.connectToHost(server.serverAddress(), server.serverPort());
+ QVERIFY(client.waitForConnected());
+
+ QElapsedTimer elapsedTimer;
+ elapsedTimer.start();
+
+ // Exec own message loop
+ MSG msg;
+ forever {
+ if (elapsedTimer.hasExpired(3000) || server.hasPendingConnections())
+ break;
+
+ if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
+ ::TranslateMessage(&msg);
+ ::DispatchMessage(&msg);
+ }
+ }
+
+ QVERIFY(server.hasPendingConnections());
+}
+
#include <tst_noqteventloop.moc>
QTEST_APPLESS_MAIN(tst_NoQtEventLoop)