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)
: interval(i)
{
firstTimerId = startTimer(interval);
extraTimerId = startTimer(interval + 80ms);
secondTimerId = -1; // started later
firstTimerId = Qt::TimerId{startTimer(interval)};
extraTimerId = Qt::TimerId{startTimer(interval + 80ms)};
secondTimerId = Qt::TimerId::Invalid; // started later
}
bool event(QEvent *e) override
@ -409,28 +409,28 @@ public:
void timerEvent(QTimerEvent *te) override
{
if (te->timerId() == firstTimerId) {
if (te->id() == firstTimerId) {
if (++timeoutsForFirst == 1) {
killTimer(extraTimerId);
extraTimerId = -1;
extraTimerId = Qt::TimerId::Invalid;
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;
} else if (te->timerId() == extraTimerId) {
} else if (te->id() == extraTimerId) {
++timeoutsForExtra;
}
// sleep for 2ms
QTest::qSleep(2);
killTimer(te->timerId());
killTimer(te->id());
}
const std::chrono::nanoseconds interval;
int firstTimerId = -1;
int secondTimerId = -1;
int extraTimerId = -1;
Qt::TimerId firstTimerId = Qt::TimerId::Invalid;
Qt::TimerId secondTimerId = Qt::TimerId::Invalid;
Qt::TimerId extraTimerId = Qt::TimerId::Invalid;
int timeoutsForFirst = 0;
int timeoutsForExtra = 0;
int timeoutsForSecond = 0;
@ -646,7 +646,7 @@ void tst_QChronoTimer::newTimerFiresTooSoon()
QTest::qWait(0 /*ms*/); // Clean up event queue from previous tests
TimerListener listener;
const int timerId = listener.startTimer(50ms, Qt::CoarseTimer);
const auto timerId = Qt::TimerId{listener.startTimer(50ms, Qt::CoarseTimer)};
QThread::sleep(100ms);
// 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
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
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
// "active", meaning the timer id should NOT be reused (i.e. the event dispatcher should not
// have unregistered it)
int timerId = thread.startTimer(100ms);
Qt::TimerId timerId = Qt::TimerId{thread.startTimer(100ms)};
QVERIFY((timerId & 0xffffff) != (thread.timerId & 0xffffff));
}
@ -937,7 +937,7 @@ DontBlockEvents::DontBlockEvents()
void DontBlockEvents::timerEvent(QTimerEvent* event)
{
if (event->timerId() == m_timer.timerId()) {
if (event->id() == m_timer.id()) {
QMetaObject::invokeMethod(this, &DontBlockEvents::paintEvent, Qt::QueuedConnection);
m_timer.start(0ms, this);
count++;

View File

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

View File

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