| #[cfg(not(any( |
| target_os = "emscripten", |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "wasi", |
| )))] |
| use rustix::thread::{clock_nanosleep_absolute, clock_nanosleep_relative, ClockId}; |
| #[cfg(not(target_os = "redox"))] |
| use { |
| rustix::io, |
| rustix::thread::{nanosleep, NanosleepRelativeResult, Timespec}, |
| }; |
| |
| #[cfg(not(target_os = "redox"))] |
| #[test] |
| fn test_invalid_nanosleep() { |
| match nanosleep(&Timespec { |
| tv_sec: 0, |
| tv_nsec: 1_000_000_000, |
| }) { |
| NanosleepRelativeResult::Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match nanosleep(&Timespec { |
| tv_sec: 0, |
| tv_nsec: !0, |
| }) { |
| NanosleepRelativeResult::Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match nanosleep(&Timespec { |
| tv_sec: !0, |
| tv_nsec: 1_000_000_000, |
| }) { |
| NanosleepRelativeResult::Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match nanosleep(&Timespec { |
| tv_sec: !0, |
| tv_nsec: !0, |
| }) { |
| NanosleepRelativeResult::Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| } |
| |
| #[cfg(not(any( |
| target_os = "emscripten", |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "wasi", |
| )))] |
| #[test] |
| fn test_invalid_nanosleep_absolute() { |
| match clock_nanosleep_absolute( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: 0, |
| tv_nsec: 1000000000, |
| }, |
| ) { |
| Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match clock_nanosleep_absolute( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: 0, |
| tv_nsec: !0, |
| }, |
| ) { |
| Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match clock_nanosleep_absolute( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: !0, |
| tv_nsec: 1_000_000_000, |
| }, |
| ) { |
| Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match clock_nanosleep_absolute( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: !0, |
| tv_nsec: !0, |
| }, |
| ) { |
| Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| } |
| |
| #[cfg(not(any( |
| target_os = "emscripten", |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "wasi", |
| )))] |
| #[test] |
| fn test_invalid_nanosleep_relative() { |
| match clock_nanosleep_relative( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: 0, |
| tv_nsec: 1_000_000_000, |
| }, |
| ) { |
| NanosleepRelativeResult::Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match clock_nanosleep_relative( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: 0, |
| tv_nsec: !0, |
| }, |
| ) { |
| NanosleepRelativeResult::Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match clock_nanosleep_relative( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: !0, |
| tv_nsec: 1_000_000_000, |
| }, |
| ) { |
| NanosleepRelativeResult::Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| match clock_nanosleep_relative( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: !0, |
| tv_nsec: !0, |
| }, |
| ) { |
| NanosleepRelativeResult::Err(io::Errno::INVAL) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| } |
| |
| #[cfg(not(target_os = "redox"))] |
| #[test] |
| fn test_zero_nanosleep() { |
| match nanosleep(&Timespec { |
| tv_sec: 0, |
| tv_nsec: 0, |
| }) { |
| NanosleepRelativeResult::Ok => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| } |
| |
| #[cfg(not(any( |
| target_os = "emscripten", |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "wasi", |
| )))] |
| #[test] |
| fn test_zero_nanosleep_absolute() { |
| match clock_nanosleep_absolute( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: 0, |
| tv_nsec: 0, |
| }, |
| ) { |
| Ok(()) => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| } |
| |
| #[cfg(not(any( |
| target_os = "emscripten", |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "wasi", |
| )))] |
| #[test] |
| fn test_zero_nanosleep_relative() { |
| match clock_nanosleep_relative( |
| ClockId::Monotonic, |
| &Timespec { |
| tv_sec: 0, |
| tv_nsec: 0, |
| }, |
| ) { |
| NanosleepRelativeResult::Ok => (), |
| otherwise => panic!("unexpected resut: {:?}", otherwise), |
| } |
| } |