165c3cfc1SJulio Merino#!/bin/sh 265c3cfc1SJulio Merino 36677932eSCraig Rodriguesjail_name_to_jid() 46677932eSCraig Rodrigues{ 56677932eSCraig Rodrigues local check_name="$1" 67a2065efSEnji Cooper jls -j "$check_name" -s | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g' 76677932eSCraig Rodrigues} 86677932eSCraig Rodrigues 96677932eSCraig Rodriguesbase=pgrep_j_test 1065c3cfc1SJulio Merino 11*5ff2e55eSAlex Richardsonif [ "$(id -u)" -ne 0 ]; then 12b8b98653SEnji Cooper echo "1..0 # skip Test needs uid 0." 13b8b98653SEnji Cooper exit 0 14b8b98653SEnji Cooperfi 15b8b98653SEnji Cooper 16c4f0631fSJamie Grittonecho "1..4" 1765c3cfc1SJulio Merino 1865c3cfc1SJulio Merinosleep=$(pwd)/sleep.txt 1965c3cfc1SJulio Merinoln -sf /bin/sleep $sleep 20b8b98653SEnji Cooper 21b8b98653SEnji Coopername="pgrep -j <jid>" 226bfde4a6SRuslan Bukinsleep_amount=15 236677932eSCraig Rodriguesjail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \ 2418f4d107SEnji Cooper command=daemon -p ${PWD}/${base}_1_1.pid $sleep $sleep_amount & 256677932eSCraig Rodrigues 266677932eSCraig Rodriguesjail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \ 2718f4d107SEnji Cooper command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount & 286bfde4a6SRuslan Bukinsleep 0.5 296677932eSCraig Rodrigues 30*5ff2e55eSAlex Richardsonfor i in $(seq 1 10); do 316677932eSCraig Rodrigues jid1=$(jail_name_to_jid ${base}_1_1) 326677932eSCraig Rodrigues jid2=$(jail_name_to_jid ${base}_1_2) 336677932eSCraig Rodrigues jid="${jid1},${jid2}" 348edd0e30SEnji Cooper case "$jid" in 35*5ff2e55eSAlex Richardson [0-9]*,[0-9]*) 368edd0e30SEnji Cooper break 378edd0e30SEnji Cooper ;; 388edd0e30SEnji Cooper esac 398edd0e30SEnji Cooper sleep 0.1 408edd0e30SEnji Cooperdone 417a2065efSEnji Coopersleep 0.5 428edd0e30SEnji Cooper 438edd0e30SEnji Cooperpid1="$(pgrep -f -x -j "$jid" "$sleep $sleep_amount" | sort)" 446677932eSCraig Rodriguespid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_1_1.pid)" \ 45*5ff2e55eSAlex Richardson "$(cat ${PWD}/${base}_1_2.pid)" | sort) 466677932eSCraig Rodriguesif [ "$pid1" = "$pid2" ]; then 4765c3cfc1SJulio Merino echo "ok 1 - $name" 4865c3cfc1SJulio Merinoelse 49*5ff2e55eSAlex Richardson echo "not ok 1 - $name # pgrep output: '$pid1', pidfile output: '$pid2'" 5065c3cfc1SJulio Merinofi 51*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_1_1.pid ] && kill "$(cat ${PWD}/${base}_1_1.pid)" 52*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_1_2.pid ] && kill "$(cat ${PWD}/${base}_1_2.pid)" 5301f66c08SEnji Cooperwait 5465c3cfc1SJulio Merino 5565c3cfc1SJulio Merinoname="pgrep -j any" 5651acc171SRuslan Bukinsleep_amount=16 576677932eSCraig Rodriguesjail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \ 5818f4d107SEnji 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 \ 6118f4d107SEnji Cooper command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount & 626677932eSCraig Rodrigues 636677932eSCraig Rodriguessleep 2 6418f4d107SEnji Cooperpid1="$(pgrep -f -x -j any "$sleep $sleep_amount" | sort)" 656677932eSCraig Rodriguespid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_2_1.pid)" \ 66*5ff2e55eSAlex Richardson "$(cat ${PWD}/${base}_2_2.pid)" | sort) 676677932eSCraig Rodriguesif [ "$pid1" = "$pid2" ]; then 6865c3cfc1SJulio Merino echo "ok 2 - $name" 6965c3cfc1SJulio Merinoelse 70*5ff2e55eSAlex Richardson echo "not ok 2 - $name # pgrep output: '$pid1', pidfile output: '$pid2'" 7165c3cfc1SJulio Merinofi 72*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_2_1.pid ] && kill "$(cat ${PWD}/${base}_2_1.pid)" 73*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_2_2.pid ] && kill "$(cat ${PWD}/${base}_2_2.pid)" 7401f66c08SEnji Cooperwait 7565c3cfc1SJulio Merino 7665c3cfc1SJulio Merinoname="pgrep -j none" 7751acc171SRuslan Bukinsleep_amount=17 7818f4d107SEnji Cooperdaemon -p ${PWD}/${base}_3_1.pid $sleep $sleep_amount & 796677932eSCraig Rodriguesjail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \ 8018f4d107SEnji Cooper command=daemon -p ${PWD}/${base}_3_2.pid $sleep $sleep_amount & 816677932eSCraig Rodriguessleep 2 8218f4d107SEnji Cooperpid="$(pgrep -f -x -j none "$sleep $sleep_amount")" 836677932eSCraig Rodriguesif [ "$pid" = "$(cat ${PWD}/${base}_3_1.pid)" ]; then 8465c3cfc1SJulio Merino echo "ok 3 - $name" 8565c3cfc1SJulio Merinoelse 86*5ff2e55eSAlex Richardson echo "not ok 3 - $name # pgrep output: '$pid1', pidfile output: '$pid2'" 8765c3cfc1SJulio Merinofi 88*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_3_1.pid ] && kill "$(cat $PWD/${base}_3_1.pid)" 89*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_3_2.pid ] && kill "$(cat $PWD/${base}_3_2.pid)" 90c4f0631fSJamie Grittonwait 91c4f0631fSJamie Gritton 92c4f0631fSJamie Gritton# test 4 is like test 1 except with jname instead of jid. 93c4f0631fSJamie Grittonname="pgrep -j <jname>" 9451acc171SRuslan Bukinsleep_amount=18 95c4f0631fSJamie Grittonjail -c path=/ name=${base}_4_1 ip4.addr=127.0.0.1 \ 96c4f0631fSJamie Gritton command=daemon -p ${PWD}/${base}_4_1.pid $sleep $sleep_amount & 97c4f0631fSJamie Gritton 98c4f0631fSJamie Grittonjail -c path=/ name=${base}_4_2 ip4.addr=127.0.0.1 \ 99c4f0631fSJamie Gritton command=daemon -p ${PWD}/${base}_4_2.pid $sleep $sleep_amount & 100c4f0631fSJamie Gritton 101c4f0631fSJamie Grittonsleep 0.5 102c4f0631fSJamie Gritton 103c4f0631fSJamie Grittonjname="${base}_4_1,${base}_4_2" 104c4f0631fSJamie Grittonpid1="$(pgrep -f -x -j "$jname" "$sleep $sleep_amount" | sort)" 105c4f0631fSJamie Grittonpid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_4_1.pid)" \ 106*5ff2e55eSAlex Richardson "$(cat ${PWD}/${base}_4_2.pid)" | sort) 107c4f0631fSJamie Grittonif [ "$pid1" = "$pid2" ]; then 108c4f0631fSJamie Gritton echo "ok 4 - $name" 109c4f0631fSJamie Grittonelse 110c4f0631fSJamie Gritton echo "not ok 4 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'" 111c4f0631fSJamie Grittonfi 112*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_4_1.pid ] && kill "$(cat ${PWD}/${base}_4_1.pid)" 113*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_4_2.pid ] && kill "$(cat ${PWD}/${base}_4_2.pid)" 114c4f0631fSJamie Grittonwait 115b8b98653SEnji Cooper 116b8b98653SEnji Cooperrm -f $sleep 117