From ae1810658b75dd0eb0247b0e951ce315c8ce4c86 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Mon, 17 Oct 2011 18:51:44 +1000 Subject: Move QTRY_VERIFY/QTRY_COMPARE into testlib. These functions have lived in tests/shared/util.h for a long time, but they really belong in qtestlib. Change-Id: I60d569d002dea220b51563931d8b7aa77a20b98b Reviewed-by: Rohan McGovern --- src/testlib/qtestcase.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/testlib/qtestcase.h') 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__);\ -- cgit v1.2.3