mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-10-26 11:19:16 +00:00
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1019 05730e5d-ab1b-0410-a4ac-84af385074fa
72 lines
998 B
C++
72 lines
998 B
C++
#include <QtCore>
|
|
#include <QtTest>
|
|
|
|
#include "Timer.h"
|
|
|
|
class TestTimer : public QObject {
|
|
Q_OBJECT
|
|
private slots:
|
|
void resolution();
|
|
void accuracy();
|
|
void atomicity();
|
|
};
|
|
|
|
void TestTimer::accuracy() {
|
|
QTime a;
|
|
Timer t;
|
|
|
|
a.restart();
|
|
t.restart();
|
|
do {
|
|
} while (a.elapsed() < 1000);
|
|
|
|
QVERIFY(abs(t.elapsed() / 1000ULL - a.elapsed()) < 10);
|
|
}
|
|
|
|
void TestTimer::resolution() {
|
|
QTime a;
|
|
Timer t;
|
|
|
|
a.restart();
|
|
t.restart();
|
|
|
|
quint64 achange = 0;
|
|
quint64 tchange = 0;
|
|
|
|
quint64 aelapsed = 0, telapsed = 0;
|
|
|
|
do {
|
|
quint64 ae = a.elapsed();
|
|
quint64 te = t.elapsed();
|
|
if (ae != aelapsed)
|
|
achange++;
|
|
if (te != telapsed)
|
|
tchange++;
|
|
|
|
aelapsed = ae;
|
|
telapsed = te;
|
|
|
|
} while (achange < 10);
|
|
|
|
QVERIFY(tchange > (achange * 100));
|
|
}
|
|
|
|
void TestTimer::atomicity() {
|
|
QTime t;
|
|
Timer a, b;
|
|
|
|
a = b;
|
|
|
|
quint64 ttime = 0;
|
|
|
|
t.restart();
|
|
do {
|
|
ttime += a.restart();
|
|
} while (t.elapsed() < 10);
|
|
|
|
QCOMPARE(ttime, b.elapsed());
|
|
}
|
|
|
|
QTEST_MAIN(TestTimer)
|
|
#include "TestTimer.moc"
|