2017-12-21 00:45:38 +01:00
|
|
|
/*
|
2020-02-22 22:21:06 +01:00
|
|
|
* Copyright (C) 2017-2020 Intel Corporation
|
2017-12-21 00:45:38 +01:00
|
|
|
*
|
2019-02-27 11:39:32 +01:00
|
|
|
* SPDX-License-Identifier: MIT
|
2017-12-21 00:45:38 +01:00
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
2020-02-23 22:44:01 +01:00
|
|
|
#include "shared/source/utilities/timer_util.h"
|
2017-12-21 00:45:38 +01:00
|
|
|
#include "test.h"
|
2019-02-27 11:39:32 +01:00
|
|
|
|
2017-12-21 00:45:38 +01:00
|
|
|
#include "gtest/gtest.h"
|
2019-02-27 11:39:32 +01:00
|
|
|
|
|
|
|
|
#include <algorithm>
|
2017-12-21 00:45:38 +01:00
|
|
|
|
2019-03-26 11:59:46 +01:00
|
|
|
using namespace NEO;
|
2017-12-21 00:45:38 +01:00
|
|
|
|
|
|
|
|
TEST(TimerTest, Get) {
|
|
|
|
|
Timer::setFreq();
|
|
|
|
|
Timer timer;
|
|
|
|
|
|
|
|
|
|
auto loopCount = 100u;
|
|
|
|
|
|
|
|
|
|
unsigned long long maxDelta = 0;
|
|
|
|
|
unsigned long long minDelta = -1;
|
|
|
|
|
|
|
|
|
|
while (loopCount--) {
|
|
|
|
|
timer.start();
|
|
|
|
|
timer.end();
|
|
|
|
|
unsigned long long currentDelta = timer.get();
|
|
|
|
|
maxDelta = std::max(currentDelta, maxDelta);
|
|
|
|
|
minDelta = std::min(currentDelta, minDelta);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
EXPECT_LE(minDelta, 10000u);
|
|
|
|
|
//thread switch may cost up to 2s
|
|
|
|
|
EXPECT_LE(maxDelta, 2000000000u);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST(TimerTest, GetStartEnd) {
|
|
|
|
|
|
|
|
|
|
Timer::setFreq();
|
|
|
|
|
Timer timer;
|
|
|
|
|
|
|
|
|
|
timer.start();
|
|
|
|
|
timer.end();
|
|
|
|
|
long long start = timer.getStart();
|
|
|
|
|
EXPECT_NE(0, start);
|
|
|
|
|
|
|
|
|
|
long long end = timer.getEnd();
|
|
|
|
|
EXPECT_NE(0, end);
|
|
|
|
|
EXPECT_GE(end, start);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST(TimerTest, Assignement) {
|
|
|
|
|
|
|
|
|
|
Timer::setFreq();
|
|
|
|
|
Timer timer1, timer2;
|
|
|
|
|
|
|
|
|
|
timer1.start();
|
|
|
|
|
timer1.end();
|
|
|
|
|
|
|
|
|
|
timer2 = timer1;
|
|
|
|
|
|
|
|
|
|
EXPECT_EQ(timer1.getStart(), timer2.getStart());
|
|
|
|
|
}
|