diff options
author | Mitch Curtis <[email protected]> | 2025-04-01 14:21:49 +0800 |
---|---|---|
committer | Mitch Curtis <[email protected]> | 2025-04-03 09:43:35 +0800 |
commit | 55f163382d36ddf908fc2884f2020a1b92340c10 (patch) | |
tree | ba83c52c38f1ff5b97ff0f2b4a342a1131bea6ae | |
parent | 0ae202c2a7b7a8fbc7ecc050edf4827ab6a2580f (diff) |
Refactor default QTRY_* timeout value into one place
Move it into a global static, so that we can allow changing it in a
follow-up commit.
Task-number: QTBUG-81979
Change-Id: I795002054f9aa7781157739b94fc2b85bcb61705
Reviewed-by: Thiago Macieira <[email protected]>
Reviewed-by: Edward Welbourne <[email protected]>
-rw-r--r-- | src/corelib/kernel/qtestsupport_core.h | 8 | ||||
-rw-r--r-- | src/gui/kernel/qtestsupport_gui.h | 10 | ||||
-rw-r--r-- | src/testlib/qtestcase.h | 28 |
3 files changed, 32 insertions, 14 deletions
diff --git a/src/corelib/kernel/qtestsupport_core.h b/src/corelib/kernel/qtestsupport_core.h index 27265903afe..bf43c3a814a 100644 --- a/src/corelib/kernel/qtestsupport_core.h +++ b/src/corelib/kernel/qtestsupport_core.h @@ -16,9 +16,15 @@ namespace QTest { Q_CORE_EXPORT void qSleep(int ms); Q_CORE_EXPORT void qSleep(std::chrono::milliseconds msecs); +namespace Internal +{ +static inline constexpr std::chrono::milliseconds defaultTryTimeout + = std::chrono::milliseconds(5000); +} // namespace Internal + template <typename Functor> [[nodiscard]] bool -qWaitFor(Functor predicate, QDeadlineTimer deadline = QDeadlineTimer(std::chrono::seconds{5})) +qWaitFor(Functor predicate, QDeadlineTimer deadline = QDeadlineTimer(Internal::defaultTryTimeout)) { // We should not spin the event loop in case the predicate is already true, // otherwise we might send new events that invalidate the predicate. diff --git a/src/gui/kernel/qtestsupport_gui.h b/src/gui/kernel/qtestsupport_gui.h index 6dcfc70be5f..951d9df1c7c 100644 --- a/src/gui/kernel/qtestsupport_gui.h +++ b/src/gui/kernel/qtestsupport_gui.h @@ -7,6 +7,7 @@ #include <QtGui/qtguiglobal.h> #include <QtGui/qevent.h> #include <QtCore/qmap.h> +#include <QtCore/qtestsupport_core.h> QT_BEGIN_NAMESPACE @@ -22,9 +23,12 @@ Q_GUI_EXPORT bool qt_handleTouchEventv2(QWindow *w, const QPointingDevice *devic namespace QTest { -[[nodiscard]] Q_GUI_EXPORT bool qWaitForWindowActive(QWindow *window, int timeout = 5000); -[[nodiscard]] Q_GUI_EXPORT bool qWaitForWindowFocused(QWindow *window, QDeadlineTimer timeout = std::chrono::seconds{5}); -[[nodiscard]] Q_GUI_EXPORT bool qWaitForWindowExposed(QWindow *window, int timeout = 5000); +[[nodiscard]] Q_GUI_EXPORT bool qWaitForWindowActive(QWindow *window, + int timeout = static_cast<int>(Internal::defaultTryTimeout.count())); +[[nodiscard]] Q_GUI_EXPORT bool qWaitForWindowFocused(QWindow *window, + QDeadlineTimer timeout = Internal::defaultTryTimeout); +[[nodiscard]] Q_GUI_EXPORT bool qWaitForWindowExposed(QWindow *window, + int timeout = static_cast<int>(Internal::defaultTryTimeout.count())); Q_GUI_EXPORT QPointingDevice * createTouchDevice(QInputDevice::DeviceType devType = QInputDevice::DeviceType::TouchScreen, QInputDevice::Capabilities caps = QInputDevice::Capability::Position); diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index 7ae317be96a..54a766a0cff 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -193,7 +193,7 @@ inline void useVerifyThrowsException() {} #define QTRY_IMPL(expr, timeoutAsGiven)\ const auto qt_test_timeoutAsMs = [&] { \ - /* make 5s work w/o user action: */ \ + /* make 5 seconds (by default) work without user action: */ \ using namespace std::chrono_literals; \ return std::chrono::milliseconds{timeoutAsGiven}; \ }(); \ @@ -210,7 +210,7 @@ do { \ QVERIFY(expr); \ } while (false) -#define QTRY_VERIFY(expr) QTRY_VERIFY_WITH_TIMEOUT(expr, 5s) +#define QTRY_VERIFY(expr) QTRY_VERIFY_WITH_TIMEOUT(expr, QTest::Internal::defaultTryTimeout) // Will try to wait for the expression to become true while allowing event processing #define QTRY_VERIFY2_WITH_TIMEOUT(expr, messageExpression, timeout) \ @@ -219,7 +219,8 @@ do { \ QVERIFY2(expr, messageExpression); \ } while (false) -#define QTRY_VERIFY2(expr, messageExpression) QTRY_VERIFY2_WITH_TIMEOUT(expr, messageExpression, 5s) +#define QTRY_VERIFY2(expr, messageExpression) \ + QTRY_VERIFY2_WITH_TIMEOUT(expr, messageExpression, QTest::Internal::defaultTryTimeout) // Will try to wait for the comparison to become successful while allowing event processing #define QTRY_COMPARE_WITH_TIMEOUT(expr, expected, timeout) \ @@ -228,7 +229,8 @@ do { \ QCOMPARE(expr, expected); \ } while (false) -#define QTRY_COMPARE(expr, expected) QTRY_COMPARE_WITH_TIMEOUT(expr, expected, 5s) +#define QTRY_COMPARE(expr, expected) \ + QTRY_COMPARE_WITH_TIMEOUT(expr, expected, QTest::Internal::defaultTryTimeout) #define QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(computed, baseline, op, opId, timeout) \ do { \ @@ -240,32 +242,38 @@ do { \ #define QTRY_COMPARE_EQ_WITH_TIMEOUT(computed, baseline, timeout) \ QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(computed, baseline, ==, Equal, timeout) -#define QTRY_COMPARE_EQ(computed, baseline) QTRY_COMPARE_EQ_WITH_TIMEOUT(computed, baseline, 5s) +#define QTRY_COMPARE_EQ(computed, baseline) \ + QTRY_COMPARE_EQ_WITH_TIMEOUT(computed, baseline, QTest::Internal::defaultTryTimeout) #define QTRY_COMPARE_NE_WITH_TIMEOUT(computed, baseline, timeout) \ QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(computed, baseline, !=, NotEqual, timeout) -#define QTRY_COMPARE_NE(computed, baseline) QTRY_COMPARE_NE_WITH_TIMEOUT(computed, baseline, 5s) +#define QTRY_COMPARE_NE(computed, baseline) \ + QTRY_COMPARE_NE_WITH_TIMEOUT(computed, baseline, QTest::Internal::defaultTryTimeout) #define QTRY_COMPARE_LT_WITH_TIMEOUT(computed, baseline, timeout) \ QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(computed, baseline, <, LessThan, timeout) -#define QTRY_COMPARE_LT(computed, baseline) QTRY_COMPARE_LT_WITH_TIMEOUT(computed, baseline, 5s) +#define QTRY_COMPARE_LT(computed, baseline) \ + QTRY_COMPARE_LT_WITH_TIMEOUT(computed, baseline, QTest::Internal::defaultTryTimeout) #define QTRY_COMPARE_LE_WITH_TIMEOUT(computed, baseline, timeout) \ QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(computed, baseline, <=, LessThanOrEqual, timeout) -#define QTRY_COMPARE_LE(computed, baseline) QTRY_COMPARE_LE_WITH_TIMEOUT(computed, baseline, 5s) +#define QTRY_COMPARE_LE(computed, baseline) \ + QTRY_COMPARE_LE_WITH_TIMEOUT(computed, baseline, QTest::Internal::defaultTryTimeout) #define QTRY_COMPARE_GT_WITH_TIMEOUT(computed, baseline, timeout) \ QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(computed, baseline, >, GreaterThan, timeout) -#define QTRY_COMPARE_GT(computed, baseline) QTRY_COMPARE_GT_WITH_TIMEOUT(computed, baseline, 5s) +#define QTRY_COMPARE_GT(computed, baseline) \ + QTRY_COMPARE_GT_WITH_TIMEOUT(computed, baseline, QTest::Internal::defaultTryTimeout) #define QTRY_COMPARE_GE_WITH_TIMEOUT(computed, baseline, timeout) \ QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(computed, baseline, >=, GreaterThanOrEqual, timeout) -#define QTRY_COMPARE_GE(computed, baseline) QTRY_COMPARE_GE_WITH_TIMEOUT(computed, baseline, 5s) +#define QTRY_COMPARE_GE(computed, baseline) \ + QTRY_COMPARE_GE_WITH_TIMEOUT(computed, baseline, QTest::Internal::defaultTryTimeout) #define QSKIP_INTERNAL(statement) \ do {\ |