Fix instability in QNetworkConfigurationManager autotest
authorShane Kearns <shane.kearns@accenture.com>
Fri, 13 May 2011 15:32:58 +0000 (16:32 +0100)
committerQt Continuous Integration System <qt-info@nokia.com>
Thu, 26 May 2011 12:16:18 +0000 (14:16 +0200)
QThread::isFinished() can return false after the finished() signal is
emitted, so test the event loop's timeout() function instead.
Don't compare prescan configurations, as these may be cached by the OS.
It was causing the test to fail on linux if run before any other network
test.

Reviewed-by: mread
(cherry picked from commit e2320ec17446dc6e851fcf4ea2d998177b0d8049)

Change-Id: I35d67294871a35e2e63619f4acb0c3c32caa5eea
Reviewed-on: http://codereview.qt.nokia.com/137
Reviewed-by: Markus Goetz
tests/auto/qnetworkconfigurationmanager/tst_qnetworkconfigurationmanager.cpp

index 2b11219..d29ef77 100644 (file)
@@ -357,7 +357,7 @@ void tst_QNetworkConfigurationManager::usedInThread()
     connect(&thread, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
     thread.start();
     QTestEventLoop::instance().enterLoop(100); //QTRY_VERIFY could take ~90 seconds to time out in the thread
-    QVERIFY(thread.isFinished());
+    QVERIFY(!QTestEventLoop::instance().timeout());
     qDebug() << "prescan:" << thread.preScanConfigs.count();
     qDebug() << "postscan:" << thread.configs.count();
 
@@ -368,7 +368,9 @@ void tst_QNetworkConfigurationManager::usedInThread()
     QTRY_VERIFY(spy.count() == 1); //wait for scan to complete
     QList<QNetworkConfiguration> configs = manager.allConfigurations();
     QCOMPARE(thread.configs, configs);
-    QCOMPARE(thread.preScanConfigs, preScanConfigs);
+    //Don't compare pre scan configs, because these may be cached and therefore give different results
+    //which makes the test unstable.  The post scan results should have all configurations every time
+    //QCOMPARE(thread.preScanConfigs, preScanConfigs);
 #endif
 }