mirror of
https://github.com/openharmony/third_party_rust_rustix.git
synced 2026-07-21 02:05:28 -04:00
f2fe80a1cd
Fix another place in the test_priorities test that needs the same fix
as in b276eab4b6.
84 lines
2.3 KiB
Rust
84 lines
2.3 KiB
Rust
use rustix::process::nice;
|
|
#[cfg(not(target_os = "redox"))]
|
|
use rustix::process::{getpriority_process, setpriority_process};
|
|
|
|
#[cfg(not(target_os = "freebsd"))] // FreeBSD's nice(3) doesn't return the old value.
|
|
#[test]
|
|
fn test_priorities() {
|
|
let old = nice(0).unwrap();
|
|
|
|
#[cfg(not(target_os = "redox"))]
|
|
{
|
|
let get_prio = getpriority_process(None).unwrap();
|
|
assert_eq!(get_prio, old);
|
|
}
|
|
|
|
// Lower the priority by one.
|
|
let new = nice(1).unwrap();
|
|
|
|
// If the test wasn't running with the lowest priority initially, test that
|
|
// we were able to lower the priority.
|
|
if old < 19 {
|
|
assert_eq!(old + 1, new);
|
|
}
|
|
|
|
let get = nice(0).unwrap();
|
|
assert_eq!(new, get);
|
|
|
|
#[cfg(not(target_os = "redox"))]
|
|
{
|
|
let get_prio = getpriority_process(None).unwrap();
|
|
assert_eq!(get_prio, new);
|
|
|
|
setpriority_process(None, get + 1).unwrap();
|
|
let now = getpriority_process(None).unwrap();
|
|
|
|
// If the test wasn't running with the lowest priority initially, test
|
|
// that we were able to lower the priority.
|
|
if get < 19 {
|
|
assert_eq!(get + 1, now);
|
|
}
|
|
setpriority_process(None, get + 10000).unwrap();
|
|
let now = getpriority_process(None).unwrap();
|
|
// Linux's max is 19; Darwin's max is 20.
|
|
assert!(now >= 19 && now <= 20);
|
|
// Darwin appears to return `EPERM` on an out of range `nice`.
|
|
if let Ok(again) = nice(1) {
|
|
assert_eq!(now, again);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// FreeBSD's `nice` doesn't return the new nice value, so use a specialized
|
|
/// test.
|
|
#[cfg(target_os = "freebsd")]
|
|
#[test]
|
|
fn test_priorities() {
|
|
let start = getpriority_process(None).unwrap();
|
|
|
|
let _ = nice(0).unwrap();
|
|
|
|
let now = getpriority_process(None).unwrap();
|
|
assert_eq!(start, now);
|
|
|
|
let _ = nice(1).unwrap();
|
|
|
|
let now = getpriority_process(None).unwrap();
|
|
assert_eq!(start + 1, now);
|
|
|
|
setpriority_process(None, start + 2).unwrap();
|
|
|
|
let now = getpriority_process(None).unwrap();
|
|
assert_eq!(start + 2, now);
|
|
|
|
setpriority_process(None, 10000).unwrap();
|
|
|
|
let now = getpriority_process(None).unwrap();
|
|
assert_eq!(now, 20);
|
|
|
|
let _ = nice(1).unwrap();
|
|
|
|
let now = getpriority_process(None).unwrap();
|
|
assert_eq!(now, 20);
|
|
}
|