diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp b/tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp index 28dd95ba..958fb1a2 100644 --- a/tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp +++ b/tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp @@ -58,9 +58,27 @@ void tst_qperformancetimer::units() { QPerformanceTimer timer; timer.start(); - QTest::qWait(300); - qint64 elapsed = timer.elapsed(); - QVERIFY(elapsed > 300000000 && elapsed < 310000000); + { + QTest::qWait(300); + qint64 elapsed = timer.elapsed(); + QVERIFY(elapsed > 300000000 && elapsed < 310000000); + } + { + qint64 monotonic_time_in_far_future = 1000000000 * 60 * 60 * 24 * 365 * 10; /// 10 years uptime + qint64 elapsed = timer.elapsedToAbsoluteTime(time_in_far_future); + elapsed = elapsed - timer.elapsedToAbsoluteTime(time_in_far_future - 2000000); + QVERIFY(elapsed == 2000000); + } + { + qint64 elapsed = timer.elapsed(); + qint64 elapsed2 = timer.elapsedToAbsoluteTime(elapsed); + qint64 monotonic_now = 2 * elapsed - elapsed2; + QTest::qWait(300); + elapsed = timer.elapsed(); + elapsed2 = timer.elapsedToAbsoluteTime(monotonic_now + 300 * 1000000); + qint64 diff = elapsed - elapsed2; + QVERIFY(diff > -10000000 && diff < 10000000); + } } QTEST_MAIN(tst_qperformancetimer) |