diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2016-06-15 00:34:10 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2020-12-09 12:54:59 -0700 |
commit | c000143ee472fc613b91a4f16f321509e4f0ee18 (patch) | |
tree | e90172e83e52db9ace793578c8a74e1c42345236 /tests/auto/corelib/kernel | |
parent | 8c8cbd15087f4f3bf642f284a8cc54b7e78ebf7e (diff) |
QDeadlineTimer: optimize when std::chrono::steady_clock is the same
Change-Id: Ib57b52598e2f452985e9fffd14583173716343b0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/kernel')
-rw-r--r-- | tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp b/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp index e4ab2eb1db..74ab52ee7e 100644 --- a/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp +++ b/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp @@ -596,6 +596,18 @@ void tst_QDeadlineTimer::stdchrono() QTRY_VERIFY2_WITH_TIMEOUT(timersExecuted, "Looks like timers didn't fire on time.", 4 * minResolution); +#if defined(Q_OS_DARWIN) || defined(Q_OS_LINUX) || (defined(Q_CC_MSVC) && Q_CC_MSVC >= 1900) + { + // We know for these OS/compilers that the std::chrono::steady_clock uses the same + // reference time as QDeadlineTimer + qint64 before = duration_cast<nanoseconds>(steady_before.time_since_epoch()).count(); + qint64 after = duration_cast<nanoseconds>(steady_after.time_since_epoch()).count(); + QVERIFY2(now.deadlineNSecs() > before, QByteArray::number(now.deadlineNSecs()) + + " > " + QByteArray::number(before)); + QVERIFY2(now.deadlineNSecs() < after, QByteArray::number(now.deadlineNSecs()) + + " < " + QByteArray::number(after)); + } +#endif { auto diff = duration_cast<milliseconds>(steady_after - steady_deadline); QVERIFY2(diff.count() > minResolution / 2, QByteArray::number(qint64(diff.count()))); |