From fb8a88b05cd3f7663efaa9c5c5cf8143a1f2b66f Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Fri, 6 May 2022 11:43:18 +0200 Subject: [PATCH] Use a precise timer in QTestEventLoop if timeout is sub-second MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QTestEventLoop is used by QSignalSpy::wait. If tests want to verify that a signal gets emitted within a second or less, we should use a precise timer to reduce the chance of timer imprecision breaking the test. Change-Id: I2a2ca3bbdcaf032288f1fdc2aecc6afd05a6c76c Reviewed-by: Qt CI Bot Reviewed-by: Edward Welbourne Reviewed-by: Tor Arne Vestbø --- src/testlib/qtesteventloop.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/testlib/qtesteventloop.h b/src/testlib/qtesteventloop.h index 32d186bd0e..7a04c82da3 100644 --- a/src/testlib/qtesteventloop.h +++ b/src/testlib/qtesteventloop.h @@ -64,7 +64,8 @@ inline void QTestEventLoop::enterLoopMSecs(int ms) return; QEventLoop l; - timerId = startTimer(ms); + // if tests want to measure sub-second precision, use a precise timer + timerId = startTimer(ms, ms < 1000 ? Qt::PreciseTimer : Qt::CoarseTimer); loop = &l; l.exec();