QtCore autotests: use Qt::TimerId methods

Change-Id: I5812221b53de95129661638fe039ec98eed6be57
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This commit is contained in:
Ahmad Samir 2024-08-19 18:52:24 +03:00
parent 59563677c6
commit 70c47da843
3 changed files with 38 additions and 37 deletions

View File

@ -391,9 +391,9 @@ public:
LiveLockTester(std::chrono::nanoseconds i) LiveLockTester(std::chrono::nanoseconds i)
: interval(i) : interval(i)
{ {
firstTimerId = startTimer(interval); firstTimerId = Qt::TimerId{startTimer(interval)};
extraTimerId = startTimer(interval + 80ms); extraTimerId = Qt::TimerId{startTimer(interval + 80ms)};
secondTimerId = -1; // started later secondTimerId = Qt::TimerId::Invalid; // started later
} }
bool event(QEvent *e) override bool event(QEvent *e) override
@ -409,28 +409,28 @@ public:
void timerEvent(QTimerEvent *te) override void timerEvent(QTimerEvent *te) override
{ {
if (te->timerId() == firstTimerId) { if (te->id() == firstTimerId) {
if (++timeoutsForFirst == 1) { if (++timeoutsForFirst == 1) {
killTimer(extraTimerId); killTimer(extraTimerId);
extraTimerId = -1; extraTimerId = Qt::TimerId::Invalid;
QCoreApplication::postEvent(this, new QEvent(PostEventType)); QCoreApplication::postEvent(this, new QEvent(PostEventType));
secondTimerId = startTimer(interval); secondTimerId = Qt::TimerId{startTimer(interval)};
} }
} else if (te->timerId() == secondTimerId) { } else if (te->id() == secondTimerId) {
++timeoutsForSecond; ++timeoutsForSecond;
} else if (te->timerId() == extraTimerId) { } else if (te->id() == extraTimerId) {
++timeoutsForExtra; ++timeoutsForExtra;
} }
// sleep for 2ms // sleep for 2ms
QTest::qSleep(2); QTest::qSleep(2);
killTimer(te->timerId()); killTimer(te->id());
} }
const std::chrono::nanoseconds interval; const std::chrono::nanoseconds interval;
int firstTimerId = -1; Qt::TimerId firstTimerId = Qt::TimerId::Invalid;
int secondTimerId = -1; Qt::TimerId secondTimerId = Qt::TimerId::Invalid;
int extraTimerId = -1; Qt::TimerId extraTimerId = Qt::TimerId::Invalid;
int timeoutsForFirst = 0; int timeoutsForFirst = 0;
int timeoutsForExtra = 0; int timeoutsForExtra = 0;
int timeoutsForSecond = 0; int timeoutsForSecond = 0;
@ -646,7 +646,7 @@ void tst_QChronoTimer::newTimerFiresTooSoon()
QTest::qWait(0 /*ms*/); // Clean up event queue from previous tests QTest::qWait(0 /*ms*/); // Clean up event queue from previous tests
TimerListener listener; TimerListener listener;
const int timerId = listener.startTimer(50ms, Qt::CoarseTimer); const auto timerId = Qt::TimerId{listener.startTimer(50ms, Qt::CoarseTimer)};
QThread::sleep(100ms); QThread::sleep(100ms);
// Force WM_TIMER events on Windows event queue // Force WM_TIMER events on Windows event queue
@ -658,7 +658,7 @@ void tst_QChronoTimer::newTimerFiresTooSoon()
// Act - Create new timer with long interval and make sure it does not immediately tick // Act - Create new timer with long interval and make sure it does not immediately tick
TimerListener listener; TimerListener listener;
const int timerId = listener.startTimer(60s, Qt::CoarseTimer); const auto timerId = Qt::TimerId{listener.startTimer(60s, Qt::CoarseTimer)};
QTest::qWait(0 /*ms*/); // Process event queue - Should not call timerEvent QTest::qWait(0 /*ms*/); // Process event queue - Should not call timerEvent
listener.killTimer(timerId); listener.killTimer(timerId);
@ -806,7 +806,7 @@ void tst_QChronoTimer::timerIdPersistsAfterThreadExit()
// even though the thread has exited, and the event dispatcher destroyed, the timer is still // even though the thread has exited, and the event dispatcher destroyed, the timer is still
// "active", meaning the timer id should NOT be reused (i.e. the event dispatcher should not // "active", meaning the timer id should NOT be reused (i.e. the event dispatcher should not
// have unregistered it) // have unregistered it)
int timerId = thread.startTimer(100ms); Qt::TimerId timerId = Qt::TimerId{thread.startTimer(100ms)};
QVERIFY((timerId & 0xffffff) != (thread.timerId & 0xffffff)); QVERIFY((timerId & 0xffffff) != (thread.timerId & 0xffffff));
} }
@ -937,7 +937,7 @@ DontBlockEvents::DontBlockEvents()
void DontBlockEvents::timerEvent(QTimerEvent* event) void DontBlockEvents::timerEvent(QTimerEvent* event)
{ {
if (event->timerId() == m_timer.timerId()) { if (event->id() == m_timer.id()) {
QMetaObject::invokeMethod(this, &DontBlockEvents::paintEvent, Qt::QueuedConnection); QMetaObject::invokeMethod(this, &DontBlockEvents::paintEvent, Qt::QueuedConnection);
m_timer.start(0ms, this); m_timer.start(0ms, this);
count++; count++;

View File

@ -25,6 +25,8 @@
#include <QTcpSocket> #include <QTcpSocket>
#include <QSignalSpy> #include <QSignalSpy>
using namespace std::chrono_literals;
class EventLoopExiter : public QObject class EventLoopExiter : public QObject
{ {
Q_OBJECT Q_OBJECT
@ -475,29 +477,29 @@ void tst_QEventLoop::processEventsExcludeSocket()
class TimerReceiver : public QObject class TimerReceiver : public QObject
{ {
public: public:
int gotTimerEvent; Qt::TimerId gotTimerEvent;
TimerReceiver() TimerReceiver()
: QObject(), gotTimerEvent(-1) : QObject(), gotTimerEvent(Qt::TimerId::Invalid)
{ } { }
void timerEvent(QTimerEvent *event) override void timerEvent(QTimerEvent *event) override
{ {
gotTimerEvent = event->timerId(); gotTimerEvent = event->id();
} }
}; };
void tst_QEventLoop::processEventsExcludeTimers() void tst_QEventLoop::processEventsExcludeTimers()
{ {
TimerReceiver timerReceiver; TimerReceiver timerReceiver;
int timerId = timerReceiver.startTimer(0); Qt::TimerId timerId = Qt::TimerId{timerReceiver.startTimer(0ns)};
QEventLoop eventLoop; QEventLoop eventLoop;
// normal process events will send timers // normal process events will send timers
eventLoop.processEvents(); eventLoop.processEvents();
QCOMPARE(timerReceiver.gotTimerEvent, timerId); QCOMPARE(timerReceiver.gotTimerEvent, timerId);
timerReceiver.gotTimerEvent = -1; timerReceiver.gotTimerEvent = Qt::TimerId::Invalid;
// but not if we exclude timers // but not if we exclude timers
eventLoop.processEvents(QEventLoop::X11ExcludeTimers); eventLoop.processEvents(QEventLoop::X11ExcludeTimers);
@ -512,13 +514,12 @@ void tst_QEventLoop::processEventsExcludeTimers()
#endif #endif
QEXPECT_FAIL("", "X11ExcludeTimers only supported in the UNIX/Glib dispatchers", Continue); QEXPECT_FAIL("", "X11ExcludeTimers only supported in the UNIX/Glib dispatchers", Continue);
QCOMPARE(timerReceiver.gotTimerEvent, -1); QCOMPARE(timerReceiver.gotTimerEvent, Qt::TimerId::Invalid);
timerReceiver.gotTimerEvent = -1;
// resume timer processing // resume timer processing
eventLoop.processEvents(); eventLoop.processEvents();
QCOMPARE(timerReceiver.gotTimerEvent, timerId); QCOMPARE(timerReceiver.gotTimerEvent, timerId);
timerReceiver.gotTimerEvent = -1; timerReceiver.gotTimerEvent = Qt::TimerId::Invalid;
} }
namespace DeliverInDefinedOrder { namespace DeliverInDefinedOrder {

View File

@ -478,9 +478,9 @@ public:
timeoutsForFirst(0), timeoutsForExtra(0), timeoutsForSecond(0), timeoutsForFirst(0), timeoutsForExtra(0), timeoutsForSecond(0),
postEventAtRightTime(false) postEventAtRightTime(false)
{ {
firstTimerId = startTimer(interval); firstTimerId = Qt::TimerId{startTimer(interval)};
extraTimerId = startTimer(interval + 80ms); extraTimerId = Qt::TimerId{startTimer(interval + 80ms)};
secondTimerId = -1; // started later secondTimerId = Qt::TimerId::Invalid; // started later
} }
bool event(QEvent *e) override bool event(QEvent *e) override
@ -496,28 +496,28 @@ public:
void timerEvent(QTimerEvent *te) override void timerEvent(QTimerEvent *te) override
{ {
if (te->timerId() == firstTimerId) { if (te->id() == firstTimerId) {
if (++timeoutsForFirst == 1) { if (++timeoutsForFirst == 1) {
killTimer(extraTimerId); killTimer(extraTimerId);
extraTimerId = -1; extraTimerId = Qt::TimerId::Invalid;
QCoreApplication::postEvent(this, new QEvent(static_cast<QEvent::Type>(4002))); QCoreApplication::postEvent(this, new QEvent(static_cast<QEvent::Type>(4002)));
secondTimerId = startTimer(interval); secondTimerId = Qt::TimerId{startTimer(interval)};
} }
} else if (te->timerId() == secondTimerId) { } else if (te->id() == secondTimerId) {
++timeoutsForSecond; ++timeoutsForSecond;
} else if (te->timerId() == extraTimerId) { } else if (te->id() == extraTimerId) {
++timeoutsForExtra; ++timeoutsForExtra;
} }
// sleep for 2ms // sleep for 2ms
QTest::qSleep(2); QTest::qSleep(2);
killTimer(te->timerId()); killTimer(te->id());
} }
const std::chrono::milliseconds interval; const std::chrono::milliseconds interval;
int firstTimerId; Qt::TimerId firstTimerId;
int secondTimerId; Qt::TimerId secondTimerId;
int extraTimerId; Qt::TimerId extraTimerId;
int timeoutsForFirst; int timeoutsForFirst;
int timeoutsForExtra; int timeoutsForExtra;
int timeoutsForSecond; int timeoutsForSecond;
@ -1138,7 +1138,7 @@ DontBlockEvents::DontBlockEvents()
void DontBlockEvents::timerEvent(QTimerEvent* event) void DontBlockEvents::timerEvent(QTimerEvent* event)
{ {
if (event->timerId() == m_timer.timerId()) { if (event->id() == m_timer.id()) {
QMetaObject::invokeMethod(this, "paintEvent", Qt::QueuedConnection); QMetaObject::invokeMethod(this, "paintEvent", Qt::QueuedConnection);
m_timer.start(0, this); m_timer.start(0, this);
count++; count++;