// This file is part of the uutils coreutils package. // // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. // spell-checker:ignore getpriority setpriority use uutests::new_ucmd; #[test] #[cfg(not(target_os = "android"))] fn test_get_current_niceness() { // Test that the nice command with no arguments returns the default nice value let nice = rustix::process::getpriority_process(None).unwrap(); new_ucmd!().succeeds().stdout_is(format!("{nice}\n")); } #[test] #[cfg(not(target_os = "android"))] 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"]).succeeds(); assert!( res.stderr_str() .starts_with("nice: warning: setpriority: Permission denied") ); // spell-checker:disable-line } #[test] fn test_adjustment_with_no_command_should_error() { new_ucmd!() .args(&["-n", "19"]) .fails() .usage_error("A command must be given with an adjustment."); } #[test] fn test_command_with_no_adjustment() { new_ucmd!().args(&["echo", "a"]).succeeds().stdout_is("a\n"); } #[test] fn test_command_with_no_args() { new_ucmd!() .args(&["-n", "19", "echo"]) .succeeds() .stdout_is("\n"); } #[test] fn test_command_with_args() { new_ucmd!() .args(&["-n", "19", "echo", "a", "b", "c"]) .succeeds() .stdout_is("a b c\n"); } #[test] fn test_command_where_command_takes_n_flag() { new_ucmd!() .args(&["-n", "19", "echo", "-n", "a"]) .succeeds() .stdout_is("a"); } #[test] fn test_invalid_argument() { new_ucmd!().arg("--invalid").fails_with_code(125); } #[test] fn test_bare_adjustment() { new_ucmd!() .args(&["-1", "echo", "-n", "a"]) .succeeds() .stdout_is("a"); } #[test] fn test_trailing_empty_adjustment() { new_ucmd!() .args(&["-n", "1", "-n"]) .fails() .stderr_str() .starts_with( "error: The argument '--adjustment ' requires a value but none was supplied", ); } #[test] fn test_nice_huge() { new_ucmd!() .args(&[ "-n", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "true", ]) .succeeds() .no_stdout(); } #[test] fn test_nice_huge_negative() { new_ucmd!().args(&["-n", "-9999999999", "true"]).succeeds(); //.stderr_contains("Permission denied"); Depending on platform? } #[test] fn test_sign_middle() { new_ucmd!() .args(&["-n", "-2+4", "true"]) .fails_with_code(125) .no_stdout() .stderr_contains("invalid"); } //uu: "-2+4" is not a valid number: invalid digit found in string //gnu: invalid adjustment `-2+4' //Both message is fine