Fix instability in QNetworkConfigurationManager autotest

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
bb10
Shane Kearns 2011-05-13 16:32:58 +01:00 committed by Qt Continuous Integration System
parent 785905a1f4
commit 8bcf0f5534
1 changed files with 4 additions and 2 deletions

View 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
}