diff options
Diffstat (limited to 'tests/auto/testlib/selftests/sleep/tst_sleep.cpp')
-rw-r--r-- | tests/auto/testlib/selftests/sleep/tst_sleep.cpp | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/tests/auto/testlib/selftests/sleep/tst_sleep.cpp b/tests/auto/testlib/selftests/sleep/tst_sleep.cpp index ebefbf44d6..d9cd6959e5 100644 --- a/tests/auto/testlib/selftests/sleep/tst_sleep.cpp +++ b/tests/auto/testlib/selftests/sleep/tst_sleep.cpp @@ -1,11 +1,20 @@ // Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <QtCore/QCoreApplication> #include <QtCore/QElapsedTimer> #include <QTest> +#ifdef Q_OS_UNIX +#include <QtCore/private/qcore_unix_p.h> +#include <QtCore/qsystemdetection.h> + +#include <time.h> +#endif + +using namespace std::chrono_literals; + class tst_Sleep: public QObject { Q_OBJECT @@ -17,17 +26,21 @@ private slots: void tst_Sleep::sleep() { + // Subtracting 10ms as a margin for error + static constexpr auto MarginForError = 10ms; + QElapsedTimer t; t.start(); + // Test qSleep(int) overload, too QTest::qSleep(100); - QVERIFY(t.elapsed() > 90); + QCOMPARE_GT(t.durationElapsed(), 100ms - MarginForError); - QTest::qSleep(1000); - QVERIFY(t.elapsed() > 1000); + QTest::qSleep(1s); + QCOMPARE_GT(t.durationElapsed(), 1s - MarginForError); - QTest::qSleep(1000 * 10); // 10 seconds - QVERIFY(t.elapsed() > 1000 * 10); + QTest::qSleep(10s); + QCOMPARE_GT(t.durationElapsed(), 10s - MarginForError); } void tst_Sleep::wait() @@ -36,16 +49,16 @@ void tst_Sleep::wait() t.start(); QTest::qWait(1); - QVERIFY(t.elapsed() >= 1); + QCOMPARE_GE(t.durationElapsed(), 1ms); QTest::qWait(10); - QVERIFY(t.elapsed() >= 11); + QCOMPARE_GE(t.durationElapsed(), 11ms); QTest::qWait(100); - QVERIFY(t.elapsed() >= 111); + QCOMPARE_GE(t.durationElapsed(), 111ms); QTest::qWait(1000); - QVERIFY(t.elapsed() >= 1111); + QCOMPARE_GE(t.durationElapsed(), 1111ms); } QTEST_MAIN(tst_Sleep) |