summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Buhr <andreas.buhr@qt.io>2020-10-06 15:07:06 +0200
committerAndreas Buhr <andreas.buhr@qt.io>2020-11-01 01:28:55 +0200
commit40495ce75cb36a5bc750e8ef2df4473534586a81 (patch)
tree25acb3b4831d7603f7d93ebc8950f7a6178fa06f
parent71223cc92ba1039f0dfde1bb30d3cccdab30c4dd (diff)
Fix tst_qtimer::zeroTimer unit test
The tst_qtimer::zeroTimer unit test was relying on QCoreApplication::processEvents processing all pending events. However, for the glib backend, this is not the case. For the glib backend, if there is an event of high priority pending, low priority events are not processed. This patch changes the test to use the overload with timeout of processEvents, which does process events until there are no more events or the timeout is reached. Fixes: QTBUG-84291 Change-Id: I429141507b8603b57a191efa21f154493d75cc9e Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--tests/auto/corelib/kernel/qtimer/BLACKLIST2
-rw-r--r--tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp4
2 files changed, 3 insertions, 3 deletions
diff --git a/tests/auto/corelib/kernel/qtimer/BLACKLIST b/tests/auto/corelib/kernel/qtimer/BLACKLIST
index 977b3a673a..e69de29bb2 100644
--- a/tests/auto/corelib/kernel/qtimer/BLACKLIST
+++ b/tests/auto/corelib/kernel/qtimer/BLACKLIST
@@ -1,2 +0,0 @@
-[zeroTimer]
-ubuntu-20.04
diff --git a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp
index 1db210e0bd..00686ab46e 100644
--- a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp
+++ b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp
@@ -94,11 +94,13 @@ void tst_QTimer::zeroTimer()
{
QTimer timer;
timer.setInterval(0);
+ timer.setSingleShot(true);
QSignalSpy timeoutSpy(&timer, &QTimer::timeout);
timer.start();
- QCoreApplication::processEvents();
+ // Pass timeout to work round glib issue, see QTBUG-84291.
+ QCoreApplication::processEvents(QEventLoop::AllEvents, INT_MAX);
QCOMPARE(timeoutSpy.count(), 1);
}