From 524be6e4ae9f864f07b4662b17114d3cb7bdfe00 Mon Sep 17 00:00:00 2001 From: Haisham <47662901+m-haisham@users.noreply.github.com> Date: Sun, 14 Apr 2024 22:46:00 +0500 Subject: [PATCH] kill: accept all casings for signal names in --list --- src/uu/kill/src/kill.rs | 4 +++- tests/by-util/test_kill.rs | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index 9ea51694d..110e8a7a6 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -154,7 +154,9 @@ fn table() { fn print_signal(signal_name_or_value: &str) -> UResult<()> { for (value, &signal) in ALL_SIGNALS.iter().enumerate() { - if signal == signal_name_or_value || (format!("SIG{signal}")) == signal_name_or_value { + if signal.eq_ignore_ascii_case(signal_name_or_value) + || format!("SIG{signal}").eq_ignore_ascii_case(signal_name_or_value) + { println!("{value}"); return Ok(()); } else if signal_name_or_value == value.to_string() { diff --git a/tests/by-util/test_kill.rs b/tests/by-util/test_kill.rs index 5393d163a..73b98f218 100644 --- a/tests/by-util/test_kill.rs +++ b/tests/by-util/test_kill.rs @@ -116,6 +116,25 @@ fn test_kill_list_one_signal_from_name() { .stdout_matches(&Regex::new("\\b9\\b").unwrap()); } +#[test] +fn test_kill_list_one_signal_ignore_case() { + // Use SIGKILL because it is 9 on all unixes. + new_ucmd!() + .arg("-l") + .arg("KiLl") + .succeeds() + .stdout_matches(&Regex::new("\\b9\\b").unwrap()); +} + +#[test] +fn test_kill_list_unknown_must_match_input_case() { + new_ucmd!() + .arg("-l") + .arg("IaMnOtAsIgNaL") // spell-checker:disable-line + .fails() + .stderr_contains("IaMnOtAsIgNaL"); // spell-checker:disable-line +} + #[test] fn test_kill_list_all_vertically() { // Check for a few signals. Do not try to be comprehensive.