diff options
author | Ivan Solovev <ivan.solovev@qt.io> | 2022-06-02 11:51:49 +0200 |
---|---|---|
committer | Ivan Solovev <ivan.solovev@qt.io> | 2022-06-03 22:37:50 +0200 |
commit | cc6d984390dc937b9d8440b6ba7d4f578e22ac0d (patch) | |
tree | 2050e45a5322fe8072b1dcd790c64f69beaa7f6d /src/testlib/qtestcase.h | |
parent | 343e0ff485de36e27c0a62781dc512a4bda22fce (diff) |
Add QTRY_COMPARE_{EQ,NE,LT,LE,GT,GE}_WITH_TIMEOUT()
[ChangeLog][QTestLib] Add QTRY_COMPARE_{EQ,NE,LT,LE,GT,GE}_WITH_TIMEOUT
macros that repeatedly execute QCOMPARE_{EQ,NE,LT,LE,GT,GE} until either
the comparison returns true or the timeout expires. Also add
QTRY_COMPARE_{EQ,NE,LT,LE,GT,GE} macros that simply invoke the
*_WITH_TIMEOUT versions with the usual timeout of five seconds.
Task-number: QTBUG-98873
Change-Id: Ib0d7d1c8c997f442b46acd85da738a8f512cc875
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/testlib/qtestcase.h')
-rw-r--r-- | src/testlib/qtestcase.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index 555458e041..d4caf20e69 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -204,6 +204,42 @@ do { \ #define QTRY_COMPARE(expr, expected) QTRY_COMPARE_WITH_TIMEOUT((expr), expected, 5000) +#define QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(left, right, op, opId, timeout) \ +do { \ + QTRY_IMPL(((left) op (right)), timeout); \ + QCOMPARE_OP_IMPL(left, right, op, opId); \ +} while (false) + +#define QTRY_COMPARE_EQ_WITH_TIMEOUT(left, right, timeout) \ + QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(left, right, ==, Equal, timeout) + +#define QTRY_COMPARE_EQ(left, right) QTRY_COMPARE_EQ_WITH_TIMEOUT(left, right, 5000) + +#define QTRY_COMPARE_NE_WITH_TIMEOUT(left, right, timeout) \ + QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(left, right, !=, NotEqual, timeout) + +#define QTRY_COMPARE_NE(left, right) QTRY_COMPARE_NE_WITH_TIMEOUT(left, right, 5000) + +#define QTRY_COMPARE_LT_WITH_TIMEOUT(left, right, timeout) \ + QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(left, right, <, LessThan, timeout) + +#define QTRY_COMPARE_LT(left, right) QTRY_COMPARE_LT_WITH_TIMEOUT(left, right, 5000) + +#define QTRY_COMPARE_LE_WITH_TIMEOUT(left, right, timeout) \ + QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(left, right, <=, LessThanOrEqual, timeout) + +#define QTRY_COMPARE_LE(left, right) QTRY_COMPARE_LE_WITH_TIMEOUT(left, right, 5000) + +#define QTRY_COMPARE_GT_WITH_TIMEOUT(left, right, timeout) \ + QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(left, right, >, GreaterThan, timeout) + +#define QTRY_COMPARE_GT(left, right) QTRY_COMPARE_GT_WITH_TIMEOUT(left, right, 5000) + +#define QTRY_COMPARE_GE_WITH_TIMEOUT(left, right, timeout) \ + QTRY_COMPARE_OP_WITH_TIMEOUT_IMPL(left, right, >=, GreaterThanOrEqual, timeout) + +#define QTRY_COMPARE_GE(left, right) QTRY_COMPARE_GE_WITH_TIMEOUT(left, right, 5000) + #define QSKIP_INTERNAL(statement) \ do {\ QTest::qSkip(static_cast<const char *>(statement), __FILE__, __LINE__);\ |