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.
58 lines
1.4 KiB
58 lines
1.4 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/timer.h>
|
|
|
|
using namespace rsutils::time;
|
|
|
|
// Test description:
|
|
// > Test the timer main functions
|
|
// > Verify the timer expired only when the timeout is reached.
|
|
// > Verify restart process
|
|
TEST_CASE( "test timer", "[timer]" )
|
|
{
|
|
timer t(TEST_DELTA_TIME);
|
|
|
|
CHECK_FALSE(t.has_expired());
|
|
|
|
t.start();
|
|
CHECK_FALSE(t.has_expired());
|
|
|
|
std::this_thread::sleep_for(TEST_DELTA_TIME + std::chrono::milliseconds(100));
|
|
|
|
// test has_expired() function - expect time expiration
|
|
CHECK(t.has_expired());
|
|
|
|
// test start() function and verify expiration behavior
|
|
t.start();
|
|
CHECK_FALSE(t.has_expired());
|
|
|
|
std::this_thread::sleep_for(TEST_DELTA_TIME / 2);
|
|
|
|
// Verify time has not expired yet
|
|
CHECK_FALSE(t.has_expired());
|
|
|
|
std::this_thread::sleep_for(TEST_DELTA_TIME);
|
|
|
|
// Verify time expired
|
|
CHECK(t.has_expired());
|
|
|
|
}
|
|
|
|
// Test description:
|
|
// Verify the we can force the time expiration
|
|
TEST_CASE("Test force time expiration", "[timer]")
|
|
{
|
|
timer t(TEST_DELTA_TIME);
|
|
|
|
CHECK_FALSE(t.has_expired());
|
|
t.set_expired();
|
|
CHECK(t.has_expired());
|
|
}
|