From 7df8fac53824a0b9f3833a9ffd0d4cfeb9bb190e Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Sun, 26 Jan 2025 16:09:37 +0100 Subject: [PATCH] kill: test "-l " & adapt error messages --- src/uu/kill/src/kill.rs | 4 ++-- tests/by-util/test_kill.rs | 32 ++++++++++++++++++++++++++------ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index 7638dcc448..9fb42899a3 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -177,7 +177,7 @@ fn print_signal(signal_name_or_value: &str) -> UResult<()> { } Err(USimpleError::new( 1, - format!("unknown signal name {}", signal_name_or_value.quote()), + format!("{}: invalid signal", signal_name_or_value.quote()), )) } @@ -205,7 +205,7 @@ fn parse_signal_value(signal_name: &str) -> UResult { Some(x) => Ok(x), None => Err(USimpleError::new( 1, - format!("unknown signal name {}", signal_name.quote()), + format!("{}: invalid signal", signal_name.quote()), )), } } diff --git a/tests/by-util/test_kill.rs b/tests/by-util/test_kill.rs index b42e34828f..c369fcc817 100644 --- a/tests/by-util/test_kill.rs +++ b/tests/by-util/test_kill.rs @@ -2,6 +2,9 @@ // // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. + +// spell-checker:ignore IAMNOTASIGNAL + use crate::common::util::TestScenario; use regex::Regex; use std::os::unix::process::ExitStatusExt; @@ -108,6 +111,24 @@ fn test_kill_table_lists_all_vertically() { assert!(signals.contains(&"EXIT")); } +#[test] +fn test_kill_list_one_signal_from_number() { + new_ucmd!() + .arg("-l") + .arg("9") + .succeeds() + .stdout_only("KILL\n"); +} + +#[test] +fn test_kill_list_one_signal_from_invalid_number() { + new_ucmd!() + .arg("-l") + .arg("99") + .fails() + .stderr_contains("'99': invalid signal"); +} + #[test] fn test_kill_list_one_signal_from_name() { // Use SIGKILL because it is 9 on all unixes. @@ -162,11 +183,11 @@ fn test_kill_list_two_signal_from_name() { fn test_kill_list_three_signal_first_unknown() { new_ucmd!() .arg("-l") - .arg("IAMNOTASIGNAL") // spell-checker:disable-line + .arg("IAMNOTASIGNAL") .arg("INT") .arg("KILL") .fails() - .stderr_contains("unknown signal") + .stderr_contains("'IAMNOTASIGNAL': invalid signal") .stdout_matches(&Regex::new("\\d\n\\d").unwrap()); } @@ -174,9 +195,9 @@ fn test_kill_list_three_signal_first_unknown() { fn test_kill_set_bad_signal_name() { new_ucmd!() .arg("-s") - .arg("IAMNOTASIGNAL") // spell-checker:disable-line + .arg("IAMNOTASIGNAL") .fails() - .stderr_contains("unknown signal"); + .stderr_contains("'IAMNOTASIGNAL': invalid signal"); } #[test] @@ -291,8 +312,7 @@ fn test_kill_with_signal_name_new_form_unknown_must_match_input_case() { .arg("IaMnOtAsIgNaL") .arg(format!("{}", target.pid())) .fails() - .stderr_contains("unknown signal") - .stderr_contains("IaMnOtAsIgNaL"); + .stderr_contains("'IaMnOtAsIgNaL': invalid signal"); } #[test]