summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMitch Curtis <[email protected]>2025-04-01 14:21:49 +0800
committerMitch Curtis <[email protected]>2025-04-03 09:43:35 +0800
commit55f163382d36ddf908fc2884f2020a1b92340c10 (patch)
treeba83c52c38f1ff5b97ff0f2b4a342a1131bea6ae
parent0ae202c2a7b7a8fbc7ecc050edf4827ab6a2580f (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.h8
-rw-r--r--src/gui/kernel/qtestsupport_gui.h10
-rw-r--r--src/testlib/qtestcase.h28
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 {\