You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
48 lines
1.2 KiB
// License: Apache 2.0. See LICENSE file in root directory.
|
|
// Copyright(c) 2020 Intel Corporation. All Rights Reserved.
|
|
|
|
//#cmake:dependencies rsutils
|
|
|
|
// Unit Test Goals:
|
|
// Test the timer utility classes: stopwatch, timer, periodic_timer.
|
|
|
|
#include "common.h"
|
|
#include <rsutils/time/stopwatch.h>
|
|
|
|
using namespace rsutils::time;
|
|
|
|
// Test description:
|
|
// Test the stopwatch main functions
|
|
TEST_CASE( "test stopwatch", "[stopwatch]" )
|
|
{
|
|
stopwatch sw;
|
|
|
|
// Verify constructor set the time.
|
|
CHECK(sw.get_start().time_since_epoch().count() > 0);
|
|
|
|
auto current_time = clock::now();
|
|
|
|
// Verify calling order force time count order
|
|
CHECK(sw.get_start() <= current_time);
|
|
|
|
// Test elapsed() function
|
|
CHECK(sw.get_elapsed() < TEST_DELTA_TIME);
|
|
|
|
// Sleep for verifying progress of time
|
|
std::this_thread::sleep_for(TEST_DELTA_TIME);
|
|
|
|
// Check elapsed() function
|
|
CHECK(sw.get_elapsed() > TEST_DELTA_TIME);
|
|
|
|
// Check elapsed_ms() function
|
|
CHECK(sw.get_elapsed_ms() > TEST_DELTA_TIME_MS);
|
|
|
|
// Check reset() function
|
|
sw.reset();
|
|
|
|
// Verify reset cause the elapsed time to be smaller
|
|
CHECK(sw.get_elapsed() < TEST_DELTA_TIME);
|
|
CHECK(sw.get_elapsed_ms() < TEST_DELTA_TIME_MS);
|
|
|
|
}
|