pkill-j_test.sh revision 278776
1143880Spjd#!/bin/sh 2143880Spjd# $FreeBSD: head/bin/pkill/tests/pkill-j_test.sh 278776 2015-02-14 19:21:04Z ngie $ 3143880Spjd 4272305Srodrigcjail_name_to_jid() 5272305Srodrigc{ 6272305Srodrigc local check_name="$1" 7278776Sngie jls -j "$check_name" -s 2>/dev/null | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g' 8272305Srodrigc} 9143880Spjd 10272305Srodrigcbase=pkill_j_test 11272305Srodrigc 12278776Sngieif [ `id -u` -ne 0 ]; then 13278776Sngie echo "1..0 # skip Test needs uid 0." 14278776Sngie exit 0 15278776Sngiefi 16278776Sngie 17164558Syarecho "1..3" 18143880Spjd 19278776Sngiesleep=$(pwd)/sleep.txt 20278776Sngieln -sf /bin/sleep $sleep 21278776Sngie 22143880Spjdname="pkill -j <jid>" 23278776Sngiesleep_amount=5 24278776Sngiejail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \ 25278776Sngie command=daemon -p ${PWD}/${base}_1_1.pid $sleep $sleep_amount & 26272305Srodrigc 27278776Sngiejail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \ 28278776Sngie command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount & 29272305Srodrigc 30278776Sngie$sleep $sleep_amount & 31278776Sngie 32278776Sngiefor i in `seq 1 10`; do 33272305Srodrigc jid1=$(jail_name_to_jid ${base}_1_1) 34272305Srodrigc jid2=$(jail_name_to_jid ${base}_1_2) 35272305Srodrigc jid="${jid1},${jid2}" 36278776Sngie case "$jid" in 37278776Sngie [0-9]+,[0-9]+) 38278776Sngie break 39278776Sngie ;; 40278776Sngie esac 41278776Sngie sleep 0.1 42278776Sngiedone 43278776Sngie 44278776Sngieif pkill -f -j "$jid" $sleep && sleep 0.5 && 45278776Sngie ! -f ${PWD}/${base}_1_1.pid && 46278776Sngie ! -f ${PWD}/${base}_1_2.pid ; then 47278776Sngie echo "ok 1 - $name" 48143880Spjdelse 49278776Sngie echo "not ok 1 - $name" 50278776Sngiefi 2>/dev/null 51278776Sngie[ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid) 52278776Sngie[ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid) 53278776Sngiewait 54143880Spjd 55164558Syarname="pkill -j any" 56278776Sngiesleep_amount=6 57278776Sngiejail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \ 58278776Sngie command=daemon -p ${PWD}/${base}_2_1.pid $sleep $sleep_amount & 59272305Srodrigc 60278776Sngiejail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \ 61278776Sngie command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount & 62272305Srodrigc 63278776Sngie$sleep $sleep_amount & 64278776Sngiechpid3=$! 65278776Sngiesleep 0.5 66278776Sngieif pkill -f -j any $sleep && sleep 0.5 && 67278776Sngie [ ! -f ${PWD}/${base}_2_1.pid -a 68278776Sngie ! -f ${PWD}/${base}_2_2.pid ] && kill $chpid3; then 69278776Sngie echo "ok 2 - $name" 70143880Spjdelse 71278776Sngie echo "not ok 2 - $name" 72278776Sngiefi 2>/dev/null 73278776Sngie[ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid) 74278776Sngie[ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid) 75278776Sngiewait 76164558Syar 77164558Syarname="pkill -j none" 78278776Sngiesleep_amount=7 79278776Sngiedaemon -p ${PWD}/${base}_3_1.pid $sleep $sleep_amount 80278776Sngiejail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \ 81278776Sngie command=daemon -p ${PWD}/${base}_3_2.pid $sleep $sleep_amount & 82278776Sngiesleep 1 83278776Sngieif pkill -f -j none "$sleep $sleep_amount" && sleep 1 && 84278776Sngie [ ! -f ${PWD}/${base}_3_1.pid -a -f ${PWD}/${base}_3_2.pid ] ; then 85278776Sngie echo "ok 3 - $name" 86164558Syarelse 87278776Sngie ls ${PWD}/*.pid 88278776Sngie echo "not ok 3 - $name" 89278776Sngiefi 2>/dev/null 90278776Sngie[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid) 91278776Sngie[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid) 92278776Sngie 93278776Sngierm -f $sleep 94