1 #!/bin/bash 2 3 # Copyright 2013 Divya Kothari <divya.s.kothari (at] gmail.com> 4 # Copyright 2013 Robin Mittal <robinmittal.it (at] 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 108