coreutils/tests/by-util/test_nice.rs

88 lines
2.1 KiB
Rust
Raw Normal View History

// spell-checker:ignore libc's
2023-03-20 13:51:19 +00:00
use crate::common::util::TestScenario;
2021-03-12 18:38:02 +00:00
#[test]
#[cfg(not(target_os = "android"))]
2021-03-12 18:38:02 +00:00
fn test_get_current_niceness() {
// Test that the nice command with no arguments returns the default nice
// value, which we determine by querying libc's `nice` in our own process.
new_ucmd!()
.run()
.stdout_is(format!("{}\n", unsafe { libc::nice(0) }));
2021-03-12 18:38:02 +00:00
}
#[test]
#[cfg(not(target_os = "android"))]
2021-03-12 18:38:02 +00:00
fn test_negative_adjustment() {
// This assumes the test suite is run as a normal (non-root) user, and as
// such attempting to set a negative niceness value will be rejected by
// the OS. If it gets denied, then we know a negative value was parsed
// correctly.
let res = new_ucmd!().args(&["-n", "-1", "true"]).run();
2021-03-18 09:24:30 +00:00
assert!(res
2021-04-22 20:37:44 +00:00
.stderr_str()
2021-05-31 03:55:28 +00:00
.starts_with("nice: warning: setpriority: Permission denied")); // spell-checker:disable-line
2021-03-12 18:38:02 +00:00
}
#[test]
fn test_adjustment_with_no_command_should_error() {
2021-11-09 20:23:41 +00:00
new_ucmd!()
.args(&["-n", "19"])
.fails()
.usage_error("A command must be given with an adjustment.");
2021-03-12 18:38:02 +00:00
}
#[test]
fn test_command_with_no_adjustment() {
new_ucmd!().args(&["echo", "a"]).run().stdout_is("a\n");
}
#[test]
fn test_command_with_no_args() {
new_ucmd!()
.args(&["-n", "19", "echo"])
.run()
.stdout_is("\n");
}
#[test]
fn test_command_with_args() {
new_ucmd!()
.args(&["-n", "19", "echo", "a", "b", "c"])
.run()
.stdout_is("a b c\n");
}
#[test]
fn test_command_where_command_takes_n_flag() {
new_ucmd!()
.args(&["-n", "19", "echo", "-n", "a"])
.run()
.stdout_is("a");
}
#[test]
fn test_invalid_argument() {
new_ucmd!().arg("--invalid").fails().code_is(125);
}
#[test]
fn test_bare_adjustment() {
new_ucmd!()
.args(&["-1", "echo", "-n", "a"])
.run()
.stdout_is("a");
}
#[test]
fn test_trailing_empty_adjustment() {
new_ucmd!()
.args(&["-n", "1", "-n"])
.fails()
.stderr_str()
.starts_with(
"error: The argument '--adjustment <adjustment>' requires a value but none was supplied",
);
}