xref: /freebsd/bin/pkill/tests/pgrep-j_test.sh (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
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