Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.4
-
None
Description
QTRY_COMPARE_WITH_TIMEOUT()'s definition tests QTRY_IMPL((expr) == (expected), timeout) using the == operator in the loop instead of the QTest::qCompare() overloads that QCOMPARE() uses to determine whether values are equal. After the QTRY_IMPL(), the macro does go on to do an actual QCOMPARE(), so the right results get reported, but it's possible the QTRY_IMPL() loop will spin until the end of the full timeout after the QTest::qCompare() comparison would have reported success, due to values being "suitably equal" despite not being operator==() equal.
Unfortunately fixing this would be somewhat non-trivial.