diff options
Diffstat (limited to 'vendor/rustix/tests/thread')
-rw-r--r-- | vendor/rustix/tests/thread/clocks.rs | 212 | ||||
-rw-r--r-- | vendor/rustix/tests/thread/id.rs | 7 | ||||
-rw-r--r-- | vendor/rustix/tests/thread/main.rs | 9 |
3 files changed, 228 insertions, 0 deletions
diff --git a/vendor/rustix/tests/thread/clocks.rs b/vendor/rustix/tests/thread/clocks.rs new file mode 100644 index 000000000..cf14df777 --- /dev/null +++ b/vendor/rustix/tests/thread/clocks.rs @@ -0,0 +1,212 @@ +#[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), + } +} diff --git a/vendor/rustix/tests/thread/id.rs b/vendor/rustix/tests/thread/id.rs new file mode 100644 index 000000000..7aa5abba5 --- /dev/null +++ b/vendor/rustix/tests/thread/id.rs @@ -0,0 +1,7 @@ +use rustix::thread; + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[test] +fn test_gettid() { + assert_eq!(thread::gettid(), thread::gettid()); +} diff --git a/vendor/rustix/tests/thread/main.rs b/vendor/rustix/tests/thread/main.rs new file mode 100644 index 000000000..0fc9b42c4 --- /dev/null +++ b/vendor/rustix/tests/thread/main.rs @@ -0,0 +1,9 @@ +//! Tests for [`rustix::thread`]. + +#![cfg(feature = "thread")] +#![cfg(not(windows))] + +#[cfg(not(any(target_os = "redox")))] +mod clocks; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod id; |