Test: Replace QSKIP by XFAIL

For tst_QtConcurrentThreadEngine::threadCount

Change-Id: I14b904a26900a01d5d04245ad60d9752f5645e68
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
This commit is contained in:
Caroline Chao 2012-09-06 12:47:50 +02:00 committed by Qt by Nokia
parent f9b9a71c99
commit 72ea9e1e94

View File

@ -278,26 +278,40 @@ public:
void tst_QtConcurrentThreadEngine::threadCount() void tst_QtConcurrentThreadEngine::threadCount()
{ {
QSKIP("QTBUG-23333: This test is unstable"); //QTBUG-23333: This test is unstable
const int repeats = 10; const int repeats = 10;
for (int i = 0; i < repeats; ++i) { for (int i = 0; i < repeats; ++i) {
ThreadCountUser t; ThreadCountUser t;
t.startBlocking(); t.startBlocking();
QCOMPARE(threads.count(), QThreadPool::globalInstance()->maxThreadCount() + 1); // +1 for the main thread. int count = threads.count();
int count_expected = QThreadPool::globalInstance()->maxThreadCount() + 1; // +1 for the main thread.
if (count != count_expected)
QEXPECT_FAIL("", "QTBUG-23333", Abort);
QCOMPARE(count, count_expected);
(new ThreadCountUser())->startAsynchronously().waitForFinished(); (new ThreadCountUser())->startAsynchronously().waitForFinished();
QCOMPARE(threads.count(), QThreadPool::globalInstance()->maxThreadCount()); count = threads.count();
count_expected = QThreadPool::globalInstance()->maxThreadCount();
if (count != count_expected)
QEXPECT_FAIL("", "QTBUG-23333", Abort);
QCOMPARE(count, count_expected);
} }
// Set the finish flag immediately, this should give us one thread only. // Set the finish flag immediately, this should give us one thread only.
for (int i = 0; i < repeats; ++i) { for (int i = 0; i < repeats; ++i) {
ThreadCountUser t(true /*finishImmediately*/); ThreadCountUser t(true /*finishImmediately*/);
t.startBlocking(); t.startBlocking();
QCOMPARE(threads.count(), 1); int count = threads.count();
if (count != 1)
QEXPECT_FAIL("", "QTBUG-23333", Abort);
QCOMPARE(count, 1);
(new ThreadCountUser(true /*finishImmediately*/))->startAsynchronously().waitForFinished(); (new ThreadCountUser(true /*finishImmediately*/))->startAsynchronously().waitForFinished();
QCOMPARE(threads.count(), 1); count = threads.count();
if (count != 1)
QEXPECT_FAIL("", "QTBUG-23333", Abort);
QCOMPARE(count, 1);
} }
} }