blob: 853ca1cf11af8c0796486f73938aa25145e43bb6 [file] [log] [blame]
// 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;
}