From d322925df5d516be46e3bbc3422832eca820d24d Mon Sep 17 00:00:00 2001 From: Haisham <47662901+m-haisham@users.noreply.github.com> Date: Fri, 12 Apr 2024 16:43:43 +0500 Subject: [PATCH 1/4] kill: print --table as vertical --- src/uu/kill/src/kill.rs | 6 +----- tests/by-util/test_kill.rs | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index 5e2ca2a151e..9a45e02bb6b 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -137,12 +137,8 @@ fn table() { let name_width = ALL_SIGNALS.iter().map(|n| n.len()).max().unwrap(); for (idx, signal) in ALL_SIGNALS.iter().enumerate() { - print!("{0: >#2} {1: <#2$}", idx, signal, name_width + 2); - if (idx + 1) % 7 == 0 { - println!(); - } + println!("{0: >#2} {1: <#2$}", idx + 1, signal, name_width + 2); } - println!(); } fn print_signal(signal_name_or_value: &str) -> UResult<()> { diff --git a/tests/by-util/test_kill.rs b/tests/by-util/test_kill.rs index 54e2ea2cf6e..092261998e5 100644 --- a/tests/by-util/test_kill.rs +++ b/tests/by-util/test_kill.rs @@ -82,6 +82,29 @@ fn test_kill_list_all_signals_as_table() { .stdout_contains("HUP"); } +#[test] +fn test_kill_table_starts_at_1() { + new_ucmd!() + .arg("-t") + .succeeds() + .stdout_matches(&Regex::new("^\\s?1").unwrap()); +} + +#[test] +fn test_kill_table_lists_all_vertically() { + // Check for a few signals. Do not try to be comprehensive. + let command = new_ucmd!().arg("-t").succeeds(); + let signals = command + .stdout_str() + .split('\n') + .flat_map(|line| line.trim().split(" ").nth(1)) + .collect::>(); + + assert!(signals.contains(&"KILL")); + assert!(signals.contains(&"TERM")); + assert!(signals.contains(&"HUP")); +} + #[test] fn test_kill_list_one_signal_from_name() { // Use SIGKILL because it is 9 on all unixes. From e1a43593dbe68a05d44ab27bf27803b7fa4963e2 Mon Sep 17 00:00:00 2001 From: Haisham <47662901+m-haisham@users.noreply.github.com> Date: Fri, 12 Apr 2024 20:44:41 +0500 Subject: [PATCH 2/4] kill: remove signal padding on --table --- src/uu/kill/src/kill.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index 9a45e02bb6b..5af400183be 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -134,10 +134,8 @@ fn handle_obsolete(args: &mut Vec) -> Option { } fn table() { - let name_width = ALL_SIGNALS.iter().map(|n| n.len()).max().unwrap(); - for (idx, signal) in ALL_SIGNALS.iter().enumerate() { - println!("{0: >#2} {1: <#2$}", idx + 1, signal, name_width + 2); + println!("{0: >#2} {1}", idx + 1, signal); } } From 7492cf58255016fcfd755281050a4d978b19ee84 Mon Sep 17 00:00:00 2001 From: Haisham <47662901+m-haisham@users.noreply.github.com> Date: Sat, 13 Apr 2024 19:45:51 +0500 Subject: [PATCH 3/4] kill: skip exit signal in --table --- src/uu/kill/src/kill.rs | 4 ++-- tests/by-util/test_kill.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index 5af400183be..a372ddd0a6d 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -134,8 +134,8 @@ fn handle_obsolete(args: &mut Vec) -> Option { } fn table() { - for (idx, signal) in ALL_SIGNALS.iter().enumerate() { - println!("{0: >#2} {1}", idx + 1, signal); + for (idx, signal) in ALL_SIGNALS.iter().enumerate().skip(1) { + println!("{0: >#2} {1}", idx, signal); } } diff --git a/tests/by-util/test_kill.rs b/tests/by-util/test_kill.rs index 092261998e5..fb2095a5559 100644 --- a/tests/by-util/test_kill.rs +++ b/tests/by-util/test_kill.rs @@ -87,7 +87,7 @@ fn test_kill_table_starts_at_1() { new_ucmd!() .arg("-t") .succeeds() - .stdout_matches(&Regex::new("^\\s?1").unwrap()); + .stdout_matches(&Regex::new("^\\s?1\\sHUP").unwrap()); } #[test] From 845c0a98c8ecb494a268edfab61d3da123e32dff Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Sun, 14 Apr 2024 14:38:46 +0200 Subject: [PATCH 4/4] kill: replace "skip" with "filter" --- src/uu/kill/src/kill.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index a372ddd0a6d..c9b8be0c112 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -134,7 +134,12 @@ fn handle_obsolete(args: &mut Vec) -> Option { } fn table() { - for (idx, signal) in ALL_SIGNALS.iter().enumerate().skip(1) { + // GNU kill doesn't list the EXIT signal with --table, so we ignore it, too + for (idx, signal) in ALL_SIGNALS + .iter() + .enumerate() + .filter(|(_, s)| **s != "EXIT") + { println!("{0: >#2} {1}", idx, signal); } }