summaryrefslogtreecommitdiffstats
path: root/tests/auto/concurrent
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-02-07 18:37:22 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-02-15 16:24:38 +0000
commit5e98873cd3408d3900903efd926c36158941d67e (patch)
treee919f5b445b66d6264af0fc83e4052e24649b33d /tests/auto/concurrent
parentdc334b60d9b187edf2ab579c535a6d5358eeb414 (diff)
Fix of flaky qFutureAssignmentLeak test
Switch to QTRY_COMPARE since thread-local references might be held shortly after finished is signalled. Change-Id: Ia32f1f45f6cc461352558e0f2acf9612f8a4639e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/concurrent')
-rw-r--r--tests/auto/concurrent/qtconcurrentmap/BLACKLIST3
-rw-r--r--tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp7
2 files changed, 5 insertions, 5 deletions
diff --git a/tests/auto/concurrent/qtconcurrentmap/BLACKLIST b/tests/auto/concurrent/qtconcurrentmap/BLACKLIST
deleted file mode 100644
index 0320f61fab..0000000000
--- a/tests/auto/concurrent/qtconcurrentmap/BLACKLIST
+++ /dev/null
@@ -1,3 +0,0 @@
-[qFutureAssignmentLeak]
-ci opensuse
-ci ubuntu-16.04
diff --git a/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp b/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp
index 2d7c0c2f64..f539f012df 100644
--- a/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp
+++ b/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp
@@ -2402,9 +2402,12 @@ void tst_QtConcurrentMap::qFutureAssignmentLeak()
future.waitForFinished();
}
- QCOMPARE(currentInstanceCount.load(), 1000);
+ // Use QTRY_COMPARE because QtConcurrent::ThreadEngine::asynchronousFinish()
+ // deletes its internals after signaling finished, so it might still be holding
+ // on to copies of InstanceCounter for a short while.
+ QTRY_COMPARE(currentInstanceCount.load(), 1000);
future = QFuture<InstanceCounter>();
- QCOMPARE(currentInstanceCount.load(), 0);
+ QTRY_COMPARE(currentInstanceCount.load(), 0);
}
inline void increment(int &num)