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>
bb10
Andreas Buhr 2020-10-06 15:07:06 +02:00
parent 71223cc92b
commit 40495ce75c
2 changed files with 3 additions and 3 deletions

View File

@ -1,2 +0,0 @@
[zeroTimer]
ubuntu-20.04

View File

@ -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);
}