aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2019-07-11 14:00:07 -0700
committerRob Landley <rob@landley.net>2019-07-12 13:18:11 -0500
commita7b8b772dee4f159028e3b998454d7466fbbc88f (patch)
treef8cdf969a4a42ff39bad63e5d3a7aaf4844cb541 /tests
parent5194d4ad66ad130cb730e0b192ba1e2b5181184d (diff)
downloadtoybox-a7b8b772dee4f159028e3b998454d7466fbbc88f.tar.gz
pidof: fix default behavior, add -x.
Before this patch, we're effectively doing `pidof -x` all the time. This patch changes names_to_pid() to allow us to say whether or not we want to include scripts, and adjusts the callers appropriately. Also add tests for `pidof` versus `pidof -x` which pass after this patch, without regressing the existing killall tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/pidof.test33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/pidof.test b/tests/pidof.test
new file mode 100644
index 00000000..7de31fc2
--- /dev/null
+++ b/tests/pidof.test
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+#
+# pidof (unlike killall) doesn't match argv[1] unless you supply -x.
+#
+
+echo "#!$(which sh)
+while true; do
+ sleep 0.1
+done" > toybox.pidof.test.script
+chmod a+x toybox.pidof.test.script
+cp toybox.pidof.test.script pidof.test
+
+./pidof.test &
+pid=$!
+testcmd "short argv[1]" "pidof.test" "" "" ""
+testcmd "short argv[1] -x" "-x pidof.test" "$pid\n" "" ""
+kill $pid
+
+./toybox.pidof.test.script &
+pid=$!
+testcmd "long argv[1]" "toybox.pidof.test.script" "" "" ""
+testcmd "long argv[1] -x" "-x toybox.pidof.test.script" "$pid\n" "" ""
+kill $pid
+
+rm -f toybox.pidof.test.script toybox.test
+
+# pidof (unlike killall) will match itself.
+testcmd "pidof pidof" "pidof > /dev/null && echo found" "found\n" "" ""