From 6b8a7fe227ed1a8a330742c0e8ca4ffce10ed57a Mon Sep 17 00:00:00 2001 From: Haisham <47662901+m-haisham@users.noreply.github.com> Date: Wed, 10 Apr 2024 18:01:47 +0500 Subject: [PATCH 1/3] kill: support multiple signals for --list --- src/uu/kill/src/kill.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index abb55f84526..5e2ca2a151e 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -71,7 +71,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { table(); Ok(()) } - Mode::List => list(pids_or_signals.first()), + Mode::List => { + list(&pids_or_signals); + Ok(()) + } } } @@ -164,12 +167,14 @@ fn print_signals() { } } -fn list(arg: Option<&String>) -> UResult<()> { - match arg { - Some(x) => print_signal(x), - None => { - print_signals(); - Ok(()) +fn list(signals: &Vec) { + if signals.is_empty() { + print_signals(); + } else { + for signal in signals { + if let Err(e) = print_signal(signal) { + uucore::show!(e) + } } } } From 065da1e1caa358ee278ecda4dba83a0a94a91384 Mon Sep 17 00:00:00 2001 From: Haisham <47662901+m-haisham@users.noreply.github.com> Date: Thu, 11 Apr 2024 08:45:53 +0500 Subject: [PATCH 2/3] kill: add tests to check multiple output --- tests/by-util/test_kill.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/by-util/test_kill.rs b/tests/by-util/test_kill.rs index a9094ecf6a7..33b850c8a73 100644 --- a/tests/by-util/test_kill.rs +++ b/tests/by-util/test_kill.rs @@ -92,6 +92,28 @@ fn test_kill_list_one_signal_from_name() { .stdout_matches(&Regex::new("\\b9\\b").unwrap()); } +#[test] +fn test_kill_list_two_signal_from_name() { + new_ucmd!() + .arg("-l") + .arg("INT") + .arg("KILL") + .succeeds() + .stdout_matches(&Regex::new("\\d\n\\d").unwrap()); +} + +#[test] +fn test_kill_list_three_signal_first_unknown() { + new_ucmd!() + .arg("-l") + .arg("IAMNOTASIGNAL") // spell-checker:disable-line + .arg("INT") + .arg("KILL") + .fails() + .stderr_contains("unknown signal") + .stdout_matches(&Regex::new("\\d\n\\d").unwrap()); +} + #[test] fn test_kill_set_bad_signal_name() { // spell-checker:disable-line From 6026f83b4228550be7c7964832792a97863bc702 Mon Sep 17 00:00:00 2001 From: Haisham <47662901+m-haisham@users.noreply.github.com> Date: Thu, 11 Apr 2024 08:48:15 +0500 Subject: [PATCH 3/3] kill: add test for vertical --list --- tests/by-util/test_kill.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/by-util/test_kill.rs b/tests/by-util/test_kill.rs index 33b850c8a73..54e2ea2cf6e 100644 --- a/tests/by-util/test_kill.rs +++ b/tests/by-util/test_kill.rs @@ -92,6 +92,16 @@ fn test_kill_list_one_signal_from_name() { .stdout_matches(&Regex::new("\\b9\\b").unwrap()); } +#[test] +fn test_kill_list_all_vertically() { + // Check for a few signals. Do not try to be comprehensive. + let command = new_ucmd!().arg("-l").succeeds(); + let signals = command.stdout_str().split('\n').collect::>(); + assert!(signals.contains(&"KILL")); + assert!(signals.contains(&"TERM")); + assert!(signals.contains(&"HUP")); +} + #[test] fn test_kill_list_two_signal_from_name() { new_ucmd!()