summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestcase.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qtestcase.h')
-rw-r--r--src/testlib/qtestcase.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h
index b3ac5f0c4f..642be0bc96 100644
--- a/src/testlib/qtestcase.h
+++ b/src/testlib/qtestcase.h
@@ -82,6 +82,34 @@ do {\
return;\
} while (0)
+// Will try to wait for the expression to become true while allowing event processing
+#define QTRY_VERIFY(__expr) \
+do { \
+ const int __step = 50; \
+ const int __timeout = 5000; \
+ if (!(__expr)) { \
+ QTest::qWait(0); \
+ } \
+ for (int __i = 0; __i < __timeout && !(__expr); __i+=__step) { \
+ QTest::qWait(__step); \
+ } \
+ QVERIFY(__expr); \
+} while (0)
+
+// Will try to wait for the comparison to become successful while allowing event processing
+#define QTRY_COMPARE(__expr, __expected) \
+do { \
+ const int __step = 50; \
+ const int __timeout = 5000; \
+ if ((__expr) != (__expected)) { \
+ QTest::qWait(0); \
+ } \
+ for (int __i = 0; __i < __timeout && ((__expr) != (__expected)); __i+=__step) { \
+ QTest::qWait(__step); \
+ } \
+ QCOMPARE(__expr, __expected); \
+} while (0)
+
#define QSKIP(statement, mode) \
do {\
QTest::qSkip(statement, QTest::mode, __FILE__, __LINE__);\