1 #[cfg(any(freebsdlike, linux_android, target_os = "emscripten"))]
2 use nix::time::clock_getcpuclockid;
3 use nix::time::{clock_gettime, ClockId};
4 
5 #[cfg(not(target_os = "redox"))]
6 #[test]
test_clock_getres()7 pub fn test_clock_getres() {
8     nix::time::clock_getres(ClockId::CLOCK_REALTIME).expect("assertion failed");
9 }
10 
11 #[test]
test_clock_gettime()12 pub fn test_clock_gettime() {
13     clock_gettime(ClockId::CLOCK_REALTIME).expect("assertion failed");
14 }
15 
16 #[cfg(any(freebsdlike, linux_android, target_os = "emscripten"))]
17 #[test]
test_clock_getcpuclockid()18 pub fn test_clock_getcpuclockid() {
19     let clock_id = clock_getcpuclockid(nix::unistd::Pid::this()).unwrap();
20     clock_gettime(clock_id).unwrap();
21 }
22 
23 #[cfg(not(target_os = "redox"))]
24 #[test]
test_clock_id_res()25 pub fn test_clock_id_res() {
26     ClockId::CLOCK_REALTIME.res().unwrap();
27 }
28 
29 #[test]
test_clock_id_now()30 pub fn test_clock_id_now() {
31     ClockId::CLOCK_REALTIME.now().unwrap();
32 }
33 
34 #[cfg(any(freebsdlike, linux_android, target_os = "emscripten"))]
35 #[test]
test_clock_id_pid_cpu_clock_id()36 pub fn test_clock_id_pid_cpu_clock_id() {
37     ClockId::pid_cpu_clock_id(nix::unistd::Pid::this())
38         .map(ClockId::now)
39         .unwrap()
40         .unwrap();
41 }
42 
43 #[cfg(any(
44     linux_android,
45     solarish,
46     freebsdlike,
47     target_os = "netbsd",
48     target_os = "hurd",
49     target_os = "aix"
50 ))]
51 #[test]
test_clock_nanosleep()52 pub fn test_clock_nanosleep() {
53     use nix::{
54         sys::time::{TimeSpec, TimeValLike},
55         time::{clock_nanosleep, ClockNanosleepFlags},
56     };
57 
58     let sleep_time = TimeSpec::microseconds(1);
59     let res = clock_nanosleep(
60         ClockId::CLOCK_MONOTONIC,
61         ClockNanosleepFlags::empty(),
62         &sleep_time,
63     );
64     let expected = TimeSpec::microseconds(0);
65     assert_eq!(res, Ok(expected));
66 }
67