| /* Copyright 2022 The ChromiumOS Authors |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| /** @brief Test functions defined in timer.h, like usleep(). |
| * |
| * This test only validates the functionality of code in timer.h and is not |
| * expected to accurately measure/check the timing. |
| */ |
| |
| #include "common.h" |
| #include "math_util.h" |
| #include "test_util.h" |
| |
| extern "C" { |
| #include "timer.h" |
| #include "watchdog.h" |
| } |
| |
| test_static int test_usleep(void) |
| { |
| constexpr int expected_duration = 12345; |
| |
| timestamp_t start_time = get_time(); |
| usleep(expected_duration); |
| int sleep_duration = time_since32(start_time); |
| |
| TEST_NEAR(expected_duration, sleep_duration, 100, "%d"); |
| |
| return EC_SUCCESS; |
| } |
| |
| void run_test(int argc, const char **argv) |
| { |
| test_reset(); |
| watchdog_reload(); |
| |
| RUN_TEST(test_usleep); |
| |
| test_print_result(); |
| } |