165c3cfc1SJulio Merino#!/bin/sh 265c3cfc1SJulio Merino# $FreeBSD$ 365c3cfc1SJulio Merino 46677932eSCraig Rodriguesjail_name_to_jid() 56677932eSCraig Rodrigues{ 66677932eSCraig Rodrigues local check_name="$1" 7*bacc28ceSEnji Cooper jls -j "$check_name" -s 2>/dev/null | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g' 86677932eSCraig Rodrigues} 96677932eSCraig Rodrigues 106677932eSCraig Rodriguesbase=pkill_j_test 1165c3cfc1SJulio Merino 12*bacc28ceSEnji Cooperif [ `id -u` -ne 0 ]; then 13*bacc28ceSEnji Cooper echo "1..0 # skip Test needs uid 0." 14*bacc28ceSEnji Cooper exit 0 15*bacc28ceSEnji Cooperfi 16*bacc28ceSEnji Cooper 1765c3cfc1SJulio Merinoecho "1..3" 1865c3cfc1SJulio Merino 1965c3cfc1SJulio Merinosleep=$(pwd)/sleep.txt 2065c3cfc1SJulio Merinoln -sf /bin/sleep $sleep 21*bacc28ceSEnji Cooper 22*bacc28ceSEnji Coopername="pkill -j <jid>" 23*bacc28ceSEnji Coopersleep_amount=5 246677932eSCraig Rodriguesjail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \ 25*bacc28ceSEnji Cooper command=daemon -p ${PWD}/${base}_1_1.pid $sleep $sleep_amount & 266677932eSCraig Rodrigues 276677932eSCraig Rodriguesjail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \ 28*bacc28ceSEnji Cooper command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount & 296677932eSCraig Rodrigues 30*bacc28ceSEnji Cooper$sleep $sleep_amount & 31*bacc28ceSEnji Cooper 32*bacc28ceSEnji Cooperfor i in `seq 1 10`; do 336677932eSCraig Rodrigues jid1=$(jail_name_to_jid ${base}_1_1) 346677932eSCraig Rodrigues jid2=$(jail_name_to_jid ${base}_1_2) 356677932eSCraig Rodrigues jid="${jid1},${jid2}" 36*bacc28ceSEnji Cooper case "$jid" in 37*bacc28ceSEnji Cooper [0-9]+,[0-9]+) 38*bacc28ceSEnji Cooper break 39*bacc28ceSEnji Cooper ;; 40*bacc28ceSEnji Cooper esac 41*bacc28ceSEnji Cooper sleep 0.1 42*bacc28ceSEnji Cooperdone 43*bacc28ceSEnji Cooper 446677932eSCraig Rodriguesif pkill -f -j "$jid" $sleep && sleep 0.5 && 456677932eSCraig Rodrigues ! -f ${PWD}/${base}_1_1.pid && 466677932eSCraig Rodrigues ! -f ${PWD}/${base}_1_2.pid ; then 4765c3cfc1SJulio Merino echo "ok 1 - $name" 4865c3cfc1SJulio Merinoelse 4965c3cfc1SJulio Merino echo "not ok 1 - $name" 5065c3cfc1SJulio Merinofi 2>/dev/null 516677932eSCraig Rodrigues[ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid) 526677932eSCraig Rodrigues[ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid) 536677932eSCraig Rodrigueswait 5465c3cfc1SJulio Merino 5565c3cfc1SJulio Merinoname="pkill -j any" 56*bacc28ceSEnji Coopersleep_amount=6 576677932eSCraig Rodriguesjail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \ 58*bacc28ceSEnji Cooper command=daemon -p ${PWD}/${base}_2_1.pid $sleep $sleep_amount & 596677932eSCraig Rodrigues 606677932eSCraig Rodriguesjail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \ 61*bacc28ceSEnji Cooper command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount & 626677932eSCraig Rodrigues 63*bacc28ceSEnji Cooper$sleep $sleep_amount & 646677932eSCraig Rodrigueschpid3=$! 65*bacc28ceSEnji Coopersleep 0.5 6665c3cfc1SJulio Merinoif pkill -f -j any $sleep && sleep 0.5 && 676677932eSCraig Rodrigues [ ! -f ${PWD}/${base}_2_1.pid -a 686677932eSCraig Rodrigues ! -f ${PWD}/${base}_2_2.pid ] && kill $chpid3; then 6965c3cfc1SJulio Merino echo "ok 2 - $name" 7065c3cfc1SJulio Merinoelse 7165c3cfc1SJulio Merino echo "not ok 2 - $name" 7265c3cfc1SJulio Merinofi 2>/dev/null 736677932eSCraig Rodrigues[ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid) 746677932eSCraig Rodrigues[ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid) 756677932eSCraig Rodrigueswait 7665c3cfc1SJulio Merino 7765c3cfc1SJulio Merinoname="pkill -j none" 78*bacc28ceSEnji Coopersleep_amount=7 79*bacc28ceSEnji Cooperdaemon -p ${PWD}/${base}_3_1.pid $sleep $sleep_amount 806677932eSCraig Rodriguesjail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \ 81*bacc28ceSEnji Cooper command=daemon -p ${PWD}/${base}_3_2.pid $sleep $sleep_amount & 826677932eSCraig Rodriguessleep 1 83*bacc28ceSEnji Cooperif pkill -f -j none "$sleep $sleep_amount" && sleep 1 && 846677932eSCraig Rodrigues [ ! -f ${PWD}/${base}_3_1.pid -a -f ${PWD}/${base}_3_2.pid ] ; then 8565c3cfc1SJulio Merino echo "ok 3 - $name" 8665c3cfc1SJulio Merinoelse 876677932eSCraig Rodrigues ls ${PWD}/*.pid 8865c3cfc1SJulio Merino echo "not ok 3 - $name" 8965c3cfc1SJulio Merinofi 2>/dev/null 906677932eSCraig Rodrigues[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid) 916677932eSCraig Rodrigues[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid) 92*bacc28ceSEnji Cooper 93*bacc28ceSEnji Cooperrm -f $sleep 94