OSDN Git Service

Remove 'exit' from xargs test too.
[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 >/dev/null &
50 sleep 1
51 testing "-s 0 -f pattern (regexp)" "pkill -s 0 -f ye* && sleep 1 &&
52    (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 yes >/dev/null &
67 proc2=$!
68 sleep 1
69 testing "-o pattern" "pkill -o yes && sleep 1 && pgrep yes" \
70   "$proc2\n" "" ""
71 killall yes >/dev/null 2>&1
72
73 yes >/dev/null &
74 sleep 1
75 testing "-s (blank) pattern" "pkill -s '' yes && sleep 1 &&
76    (pgrep yes || echo 'yes')" "yes\n" "" ""
77 killall yes >/dev/null 2>&1
78
79 yes >/dev/null &
80 sleep 1
81 testing "-s 0 pattern" "pkill -s 0 yes && sleep 1 &&
82    (pgrep yes || echo 'yes')" "yes\n" "" ""
83 killall yes >/dev/null 2>&1
84
85 yes >/dev/null &
86 proc=$!
87 proc_p=`cat /proc/${proc}/stat | awk '{ print $4 }'`
88 sleep 1
89 testing "-P parent_prodId pattern" "pkill -P $proc_p yes && sleep 1 &&
90    (pgrep yes || echo 'yes')" "yes\n" "" ""
91 killall yes >/dev/null 2>&1
92
93 yes >/dev/null &
94 proc=$!
95 proc_parent=`cat /proc/${proc}/stat | awk '{ print $4 }'`
96 sleep 1
97 testing "-9 pattern" "pkill -9 yes && sleep 1 &&
98    (pgrep yes || echo 'yes')" "yes\n" "" ""
99 killall yes >/dev/null 2>&1
100