| // Copyright 2016 The Fuchsia Authors |
| // |
| // Use of this source code is governed by a MIT-style |
| // license that can be found in the LICENSE file or at |
| // https://opensource.org/licenses/MIT |
| |
| #include <inttypes.h> |
| #include <platform.h> |
| #include <stdio.h> |
| #include <zircon/types.h> |
| |
| #include <kernel/thread.h> |
| |
| #include "tests.h" |
| |
| // Tests that thread_sleep and current_time() are consistent. |
| static int thread_sleep_test(void) { |
| int early = 0; |
| for (int i = 0; i < 5; i++) { |
| zx_time_t now = current_time(); |
| Thread::Current::SleepRelative(ZX_MSEC(500)); |
| zx_duration_t actual_delay = current_time() - now; |
| if (actual_delay < ZX_MSEC(500)) { |
| early = 1; |
| printf("Thread::Current::SleepRelative(ZX_MSEC(500)) returned after %" PRIi64 " ns\n", |
| actual_delay); |
| } |
| } |
| return early; |
| } |
| |
| int sleep_tests(int, const cmd_args*, uint32_t) { |
| thread_sleep_test(); |
| return 0; |
| } |