tst_QTimer::remainingTime(): get rid of QTest::currentTestFailed()

Looks this is redundant in fact and unneeded. The check can never be
evaluated to true, since if so, it would mean it had failed in the
previous iteration, in which we already handled the exit from the loop.

Fixed also some comments.

Task-number: QTBUG-83419
Change-Id: I4fe56bfac39cd58b1166967f3ccb80cdff882748
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
Jarek Kobus 2020-09-10 09:01:13 +02:00
parent 219ed70957
commit e15153a738
1 changed files with 11 additions and 8 deletions

View File

@ -153,30 +153,33 @@ void tst_QTimer::remainingTime()
// We let tested (which isn't a single-shot) run repeatedly, to verify
// it *does* repeat, and check that the single-shot tester, starting
// at the same time, does finish first each time, by about the right duration.
tester.start(); // start tester again
tester.start(); // Start tester again.
});
QObject::connect(&tester, &QTimer::timeout, [&]() {
// we expect that remainingTime is at most 150
const int remainingTime = tested.remainingTime();
// We expect that remainingTime is at most 150 and not overdue.
const bool remainingTimeInRange = remainingTime > 0
&& remainingTime <= expectedRemainingTime;
if (QTest::currentTestFailed() || !remainingTimeInRange)
testIteration = desiredTestCount; // to exit the QTRY_...() on failure
else
if (remainingTimeInRange)
++testIteration;
else
testIteration = desiredTestCount; // We are going to fail on QVERIFY2()
// below, so we don't want to iterate
// anymore and quickly exit the QTRY_...()
// with this failure.
if (testIteration == desiredTestCount)
QObject::disconnect(connection); // don't start tester again
QObject::disconnect(connection); // Last iteration, don't start tester again.
QVERIFY2(remainingTimeInRange, qPrintable("Remaining time "
+ QByteArray::number(remainingTime) + "ms outside expected range (0ms, "
+ QByteArray::number(expectedRemainingTime) + "ms]"));
});
tested.start(testedInterval);
tester.start(testerInterval); // start tester for the 1st time
tester.start(testerInterval); // Start tester for the 1st time.
// Test it desiredTestCount times, give it reasonable amount of time
// (twice as much as needed)
// (twice as much as needed).
QTRY_COMPARE_WITH_TIMEOUT(testIteration, desiredTestCount,
testedInterval * desiredTestCount * 2);
}