OSDN Git Service

release-request-fad05353-cc19-4c26-af2f-d5c8a574970e-for-git_oc-mr1-release-4057695...
[android-x86/external-toybox.git] / tests / pkill.test
1 #!/bin/bash
2
3 # Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
4 # Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
5
6 #cleaning 'yes' processes
7 killall yes >/dev/null 2>&1
8
9 [ -f testing.sh ] && . testing.sh
10
11 #testing "name" "command" "result" "infile" "stdin"
12
13 # Testcases for pkill command
14
15 yes >/dev/null &
16 sleep 1
17 testing "pattern" "pkill yes && sleep 1 && (pgrep yes || echo 'yes')" \
18   "yes\n" "" ""
19 killall yes >/dev/null 2>&1
20
21 yes >/dev/null &
22 yes print1 >/dev/null &
23 yes print2 >/dev/null &
24 sleep 1
25 testing "pattern (multiple)" "pkill yes && sleep 1 &&
26    (pgrep yes || echo 'yes')" "yes\n" "" ""
27 killall yes >/dev/null 2>&1
28
29 yes >/dev/null &
30 sleep 1
31 testing "-f pattern (one)" "pkill -f yes && sleep 1 &&
32    (pgrep yes || echo 'yes')" "yes\n" "" ""
33 killall yes >/dev/null 2>&1
34
35 yes print1 >/dev/null &
36 sleep 1
37 testing "-f pattern args" "pkill -f \"yes print1\" && sleep 1 &&
38    (pgrep yes || echo 'yes')" "yes\n" "" ""
39 killall yes >/dev/null 2>&1
40
41 yes >/dev/null &
42 yes print1 >/dev/null &
43 yes print2 >/dev/null &
44 sleep 1
45 testing "-f pattern (multiple)" "pkill -f yes && sleep 1 &&
46    (pgrep yes || echo 'yes')" "yes\n" "" ""
47 killall yes >/dev/null 2>&1
48
49 yes this-is-unlikely-to-appear-otherwise >/dev/null &
50 sleep 1
51 testing "-s 0 -f pattern (regexp)" "pkill -s 0 -f .*-unlikely-.*-otherwise &&
52    sleep 1 && (pgrep yes || echo 'yes')" "yes\n" "" ""
53 killall yes >/dev/null 2>&1
54
55 yes >/dev/null &
56 proc1=$!
57 yes >/dev/null &
58 proc2=$!
59 sleep 1
60 testing "-n pattern" "pkill -n yes && sleep 1 && pgrep yes" \
61   "$proc1\n" "" ""
62 killall yes >/dev/null 2>&1
63
64 yes >/dev/null &
65 proc1=$!
66 sleep 1
67 yes >/dev/null &
68 proc2=$!
69 sleep 1
70 testing "-o pattern" "pkill -o yes && sleep 1 && pgrep yes" \
71   "$proc2\n" "" ""
72 killall yes >/dev/null 2>&1
73
74 yes >/dev/null &
75 sleep 1
76 testing "-s (blank) pattern" "pkill -s '' yes && sleep 1 &&
77    (pgrep yes || echo 'yes')" "yes\n" "" ""
78 killall yes >/dev/null 2>&1
79
80 yes >/dev/null &
81 sleep 1
82 testing "-s 0 pattern" "pkill -s 0 yes && sleep 1 &&
83    (pgrep yes || echo 'yes')" "yes\n" "" ""
84 killall yes >/dev/null 2>&1
85
86 yes >/dev/null &
87 proc=$!
88 proc_p=`cat /proc/${proc}/stat | cut -d' ' -f4`
89 sleep 1
90 testing "-P parent_prodId pattern" "pkill -P $proc_p yes && sleep 1 &&
91    (pgrep yes || echo 'yes')" "yes\n" "" ""
92 killall yes >/dev/null 2>&1
93
94 yes >/dev/null &
95 sleep 1
96 testing "-9 pattern" "pkill -9 yes && sleep 1 &&
97    (pgrep yes || echo 'yes')" "yes\n" "" ""
98 killall yes >/dev/null 2>&1
99
100 yes >/dev/null &
101 sleep 1
102 testing "return success" "pkill yes && echo success" "success\n" "" ""
103 killall yes >/dev/null 2>&1
104
105 testing "return failure" "pkill almost-certainly-not || echo failure" \
106     "failure\n" "" ""
107