test: fixed failure of tst_qhostinfo
authorRohan McGovern <rohan.mcgovern@nokia.com>
Thu, 18 Aug 2011 02:53:08 +0000 (12:53 +1000)
committerQt by Nokia <qt-info@nokia.com>
Thu, 18 Aug 2011 06:05:38 +0000 (08:05 +0200)
Doing an async exit of the test event loop is unsafe - it means that
a call to exitLoop may be left pending from one testfunction, causing
future testfunctions to fail.  This in fact was happening for the
multipleDifferentLookups testfunction, which was running the event loop
for two milliseconds at a time until a certain amount of lookups was
done.  It was common for the loop to timeout after the lookup had
completed but before the async exitLoop had been processed.

Make it simple, do a synchronous exitLoop.

Change-Id: I2ffe6989bddc091ddd42b218a75f7a8ff160cf53
Reviewed-on: http://codereview.qt.nokia.com/3124
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
tests/auto/qhostinfo/tst_qhostinfo.cpp

index 35c8d8d..1c7df1b 100644 (file)
@@ -611,7 +611,7 @@ void tst_QHostInfo::resultsReady(const QHostInfo &hi)
     lookupDone = true;
     lookupResults = hi;
     lookupsDoneCounter++;
-    QMetaObject::invokeMethod(&QTestEventLoop::instance(), "exitLoop", Qt::QueuedConnection);
+    QTestEventLoop::instance().exitLoop();
 }
 
 void tst_QHostInfo::abortHostLookup()