]> granicus.if.org Git - procps-ng/commitdiff
skill: Restore the -p flag functionality
authorCraig Small <csmall@dropbear.xyz>
Mon, 12 Dec 2022 05:46:36 +0000 (16:46 +1100)
committerCraig Small <csmall@dropbear.xyz>
Mon, 12 Dec 2022 05:46:36 +0000 (16:46 +1100)
When the skill program was ported to the new API the code to filter
on PID, used by the -p option, was missed. It is now restored.

References:
 https://bugs.debian.org/1025915

NEWS
src/skill.c
testsuite/skill.test/skill.exp [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index d334c0d683530e9956dfe6220a22fd31c93ccb0b..2d13978df39c7bdfe3dae80ff127792c88d01709 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+procps-ng-NEXT
+---------------
+  * docs: Don't install English manpages twice
+  * skill: Match on -p again                               Debian #1025915
 procps-ng-4.0.2
 ---------------
   * library revision - 0:1:0
index 9f617bfdf178a4c9239b9d526283c93d9e540e9a..c2e52744e4cb6306f9ad752154cbf5d6a8db106b 100644 (file)
@@ -287,6 +287,8 @@ static void scan_procs(struct run_time_conf_t *run_time)
     for (i=0; i < total_procs; i++) {
         if (PIDS_GETINT(PID) == my_pid || PIDS_GETINT(PID) == 0)
             continue;
+       if (pids && !match_intlist(PIDS_GETINT(PID), pid_count, pids))
+           continue;
         if (uids && !match_intlist(PIDS_GETUNT(EUID), uid_count, (int *)uids))
             continue;
         if (ttys && !match_intlist(PIDS_GETINT(TTY), tty_count, ttys))
diff --git a/testsuite/skill.test/skill.exp b/testsuite/skill.test/skill.exp
new file mode 100644 (file)
index 0000000..162d961
--- /dev/null
@@ -0,0 +1,32 @@
+#
+# Dejagnu testsuite for skill - part of procps
+#
+set skill ${topdir}src/skill
+set tty [ get_tty ]
+
+if { ![ file exists $skill ] } {
+    untested { skipping (not built)}
+    return
+}
+
+set test "skill with no arguments"
+spawn $skill
+expect_pass "$test" "Usage:\\s+\(lt-\)?skill \\\[signal\\\] \\\[options\\\] <expression>"
+
+set test "skill list signal names"
+spawn $skill -l
+expect_pass "$test" "^\(\[A-Z12+-\]\\s*\)+$"
+
+set test "skill list signal names in table"
+spawn $skill -L
+expect_pass "$test" "^\(\\s+\\d+ \[A-Z12+-\]+\)+\\s*$"
+
+make_testproc
+
+# Debian 1025915
+set test "skill find one process"
+spawn $skill -n -p $testproc1_pid
+expect_pass "$test" "^$testproc1_pid\\s*$"
+
+# Cleanup
+kill_testproc