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

// 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);
}