165c3cfc1SJulio Merino#!/bin/sh 265c3cfc1SJulio Merino# $FreeBSD$ 365c3cfc1SJulio Merino 46677932eSCraig Rodriguesjail_name_to_jid() 56677932eSCraig Rodrigues{ 66677932eSCraig Rodrigues local check_name="$1" 77a2065efSEnji Cooper jls -j "$check_name" -s | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g' 86677932eSCraig Rodrigues} 96677932eSCraig Rodrigues 106677932eSCraig Rodriguesbase=pgrep_j_test 1165c3cfc1SJulio Merino 12*5ff2e55eSAlex Richardsonif [ "$(id -u)" -ne 0 ]; then 13b8b98653SEnji Cooper echo "1..0 # skip Test needs uid 0." 14b8b98653SEnji Cooper exit 0 15b8b98653SEnji Cooperfi 16b8b98653SEnji Cooper 17c4f0631fSJamie Grittonecho "1..4" 1865c3cfc1SJulio Merino 1965c3cfc1SJulio Merinosleep=$(pwd)/sleep.txt 2065c3cfc1SJulio Merinoln -sf /bin/sleep $sleep 21b8b98653SEnji Cooper 22b8b98653SEnji Coopername="pgrep -j <jid>" 236bfde4a6SRuslan Bukinsleep_amount=15 246677932eSCraig Rodriguesjail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \ 2518f4d107SEnji 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 \ 2818f4d107SEnji Cooper command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount & 296bfde4a6SRuslan Bukinsleep 0.5 306677932eSCraig Rodrigues 31*5ff2e55eSAlex Richardsonfor i in $(seq 1 10); do 326677932eSCraig Rodrigues jid1=$(jail_name_to_jid ${base}_1_1) 336677932eSCraig Rodrigues jid2=$(jail_name_to_jid ${base}_1_2) 346677932eSCraig Rodrigues jid="${jid1},${jid2}" 358edd0e30SEnji Cooper case "$jid" in 36*5ff2e55eSAlex Richardson [0-9]*,[0-9]*) 378edd0e30SEnji Cooper break 388edd0e30SEnji Cooper ;; 398edd0e30SEnji Cooper esac 408edd0e30SEnji Cooper sleep 0.1 418edd0e30SEnji Cooperdone 427a2065efSEnji Coopersleep 0.5 438edd0e30SEnji Cooper 448edd0e30SEnji Cooperpid1="$(pgrep -f -x -j "$jid" "$sleep $sleep_amount" | sort)" 456677932eSCraig Rodriguespid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_1_1.pid)" \ 46*5ff2e55eSAlex Richardson "$(cat ${PWD}/${base}_1_2.pid)" | sort) 476677932eSCraig Rodriguesif [ "$pid1" = "$pid2" ]; then 4865c3cfc1SJulio Merino echo "ok 1 - $name" 4965c3cfc1SJulio Merinoelse 50*5ff2e55eSAlex Richardson echo "not ok 1 - $name # pgrep output: '$pid1', pidfile output: '$pid2'" 5165c3cfc1SJulio Merinofi 52*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_1_1.pid ] && kill "$(cat ${PWD}/${base}_1_1.pid)" 53*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_1_2.pid ] && kill "$(cat ${PWD}/${base}_1_2.pid)" 5401f66c08SEnji Cooperwait 5565c3cfc1SJulio Merino 5665c3cfc1SJulio Merinoname="pgrep -j any" 5751acc171SRuslan Bukinsleep_amount=16 586677932eSCraig Rodriguesjail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \ 5918f4d107SEnji Cooper command=daemon -p ${PWD}/${base}_2_1.pid $sleep $sleep_amount & 606677932eSCraig Rodrigues 616677932eSCraig Rodriguesjail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \ 6218f4d107SEnji Cooper command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount & 636677932eSCraig Rodrigues 646677932eSCraig Rodriguessleep 2 6518f4d107SEnji Cooperpid1="$(pgrep -f -x -j any "$sleep $sleep_amount" | sort)" 666677932eSCraig Rodriguespid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_2_1.pid)" \ 67*5ff2e55eSAlex Richardson "$(cat ${PWD}/${base}_2_2.pid)" | sort) 686677932eSCraig Rodriguesif [ "$pid1" = "$pid2" ]; then 6965c3cfc1SJulio Merino echo "ok 2 - $name" 7065c3cfc1SJulio Merinoelse 71*5ff2e55eSAlex Richardson echo "not ok 2 - $name # pgrep output: '$pid1', pidfile output: '$pid2'" 7265c3cfc1SJulio Merinofi 73*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_2_1.pid ] && kill "$(cat ${PWD}/${base}_2_1.pid)" 74*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_2_2.pid ] && kill "$(cat ${PWD}/${base}_2_2.pid)" 7501f66c08SEnji Cooperwait 7665c3cfc1SJulio Merino 7765c3cfc1SJulio Merinoname="pgrep -j none" 7851acc171SRuslan Bukinsleep_amount=17 7918f4d107SEnji Cooperdaemon -p ${PWD}/${base}_3_1.pid $sleep $sleep_amount & 806677932eSCraig Rodriguesjail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \ 8118f4d107SEnji Cooper command=daemon -p ${PWD}/${base}_3_2.pid $sleep $sleep_amount & 826677932eSCraig Rodriguessleep 2 8318f4d107SEnji Cooperpid="$(pgrep -f -x -j none "$sleep $sleep_amount")" 846677932eSCraig Rodriguesif [ "$pid" = "$(cat ${PWD}/${base}_3_1.pid)" ]; then 8565c3cfc1SJulio Merino echo "ok 3 - $name" 8665c3cfc1SJulio Merinoelse 87*5ff2e55eSAlex Richardson echo "not ok 3 - $name # pgrep output: '$pid1', pidfile output: '$pid2'" 8865c3cfc1SJulio Merinofi 89*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_3_1.pid ] && kill "$(cat $PWD/${base}_3_1.pid)" 90*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_3_2.pid ] && kill "$(cat $PWD/${base}_3_2.pid)" 91c4f0631fSJamie Grittonwait 92c4f0631fSJamie Gritton 93c4f0631fSJamie Gritton# test 4 is like test 1 except with jname instead of jid. 94c4f0631fSJamie Grittonname="pgrep -j <jname>" 9551acc171SRuslan Bukinsleep_amount=18 96c4f0631fSJamie Grittonjail -c path=/ name=${base}_4_1 ip4.addr=127.0.0.1 \ 97c4f0631fSJamie Gritton command=daemon -p ${PWD}/${base}_4_1.pid $sleep $sleep_amount & 98c4f0631fSJamie Gritton 99c4f0631fSJamie Grittonjail -c path=/ name=${base}_4_2 ip4.addr=127.0.0.1 \ 100c4f0631fSJamie Gritton command=daemon -p ${PWD}/${base}_4_2.pid $sleep $sleep_amount & 101c4f0631fSJamie Gritton 102c4f0631fSJamie Grittonsleep 0.5 103c4f0631fSJamie Gritton 104c4f0631fSJamie Grittonjname="${base}_4_1,${base}_4_2" 105c4f0631fSJamie Grittonpid1="$(pgrep -f -x -j "$jname" "$sleep $sleep_amount" | sort)" 106c4f0631fSJamie Grittonpid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_4_1.pid)" \ 107*5ff2e55eSAlex Richardson "$(cat ${PWD}/${base}_4_2.pid)" | sort) 108c4f0631fSJamie Grittonif [ "$pid1" = "$pid2" ]; then 109c4f0631fSJamie Gritton echo "ok 4 - $name" 110c4f0631fSJamie Grittonelse 111c4f0631fSJamie Gritton echo "not ok 4 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'" 112c4f0631fSJamie Grittonfi 113*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_4_1.pid ] && kill "$(cat ${PWD}/${base}_4_1.pid)" 114*5ff2e55eSAlex Richardson[ -f ${PWD}/${base}_4_2.pid ] && kill "$(cat ${PWD}/${base}_4_2.pid)" 115c4f0631fSJamie Grittonwait 116b8b98653SEnji Cooper 117b8b98653SEnji Cooperrm -f $sleep 118