1143880Spjd#!/bin/sh 2143880Spjd# $FreeBSD: releng/11.0/bin/pkill/tests/pkill-j_test.sh 287012 2015-08-22 05:04:36Z jamie $ 3143880Spjd 4272305Srodrigcjail_name_to_jid() 5272305Srodrigc{ 6272305Srodrigc local check_name="$1" 7279121Sngie jls -j "$check_name" -s | 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 17287012Sjamieecho "1..4" 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 43279121Sngiesleep 0.5 44278776Sngie 45278776Sngieif pkill -f -j "$jid" $sleep && sleep 0.5 && 46278776Sngie ! -f ${PWD}/${base}_1_1.pid && 47278776Sngie ! -f ${PWD}/${base}_1_2.pid ; then 48278776Sngie echo "ok 1 - $name" 49143880Spjdelse 50278776Sngie echo "not ok 1 - $name" 51278776Sngiefi 2>/dev/null 52278776Sngie[ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid) 53278776Sngie[ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid) 54278776Sngiewait 55143880Spjd 56164558Syarname="pkill -j any" 57278776Sngiesleep_amount=6 58278776Sngiejail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \ 59278776Sngie command=daemon -p ${PWD}/${base}_2_1.pid $sleep $sleep_amount & 60272305Srodrigc 61278776Sngiejail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \ 62278776Sngie command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount & 63272305Srodrigc 64278776Sngie$sleep $sleep_amount & 65278776Sngiechpid3=$! 66278776Sngiesleep 0.5 67278776Sngieif pkill -f -j any $sleep && sleep 0.5 && 68278776Sngie [ ! -f ${PWD}/${base}_2_1.pid -a 69278776Sngie ! -f ${PWD}/${base}_2_2.pid ] && kill $chpid3; then 70278776Sngie echo "ok 2 - $name" 71143880Spjdelse 72278776Sngie echo "not ok 2 - $name" 73278776Sngiefi 2>/dev/null 74278776Sngie[ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid) 75278776Sngie[ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid) 76278776Sngiewait 77164558Syar 78164558Syarname="pkill -j none" 79278776Sngiesleep_amount=7 80278776Sngiedaemon -p ${PWD}/${base}_3_1.pid $sleep $sleep_amount 81278776Sngiejail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \ 82278776Sngie command=daemon -p ${PWD}/${base}_3_2.pid $sleep $sleep_amount & 83278776Sngiesleep 1 84278776Sngieif pkill -f -j none "$sleep $sleep_amount" && sleep 1 && 85278776Sngie [ ! -f ${PWD}/${base}_3_1.pid -a -f ${PWD}/${base}_3_2.pid ] ; then 86278776Sngie echo "ok 3 - $name" 87164558Syarelse 88278776Sngie ls ${PWD}/*.pid 89278776Sngie echo "not ok 3 - $name" 90278776Sngiefi 2>/dev/null 91278776Sngie[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid) 92278776Sngie[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid) 93287012Sjamiewait 94278776Sngie 95287012Sjamie# test 4 is like test 1 except with jname instead of jid. 96287012Sjamiename="pkill -j <jname>" 97287012Sjamiesleep_amount=8 98287012Sjamiejail -c path=/ name=${base}_4_1 ip4.addr=127.0.0.1 \ 99287012Sjamie command=daemon -p ${PWD}/${base}_4_1.pid $sleep $sleep_amount & 100287012Sjamie 101287012Sjamiejail -c path=/ name=${base}_4_2 ip4.addr=127.0.0.1 \ 102287012Sjamie command=daemon -p ${PWD}/${base}_4_2.pid $sleep $sleep_amount & 103287012Sjamie 104287012Sjamie$sleep $sleep_amount & 105287012Sjamie 106287012Sjamiesleep 0.5 107287012Sjamie 108287012Sjamiejname="${base}_4_1,${base}_4_2" 109287012Sjamieif pkill -f -j "$jname" $sleep && sleep 0.5 && 110287012Sjamie ! -f ${PWD}/${base}_4_1.pid && 111287012Sjamie ! -f ${PWD}/${base}_4_2.pid ; then 112287012Sjamie echo "ok 4 - $name" 113287012Sjamieelse 114287012Sjamie echo "not ok 4 - $name" 115287012Sjamiefi 2>/dev/null 116287012Sjamie[ -f ${PWD}/${base}_4_1.pid ] && kill $(cat ${PWD}/${base}_4_1.pid) 117287012Sjamie[ -f ${PWD}/${base}_4_2.pid ] && kill $(cat ${PWD}/${base}_4_2.pid) 118287012Sjamiewait 119287012Sjamie 120278776Sngierm -f $sleep 121