summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2016-06-15 00:34:10 -0700
committerThiago Macieira <thiago.macieira@intel.com>2020-12-09 12:54:59 -0700
commitc000143ee472fc613b91a4f16f321509e4f0ee18 (patch)
treee90172e83e52db9ace793578c8a74e1c42345236 /tests/auto/corelib/kernel
parent8c8cbd15087f4f3bf642f284a8cc54b7e78ebf7e (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.cpp12
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())));