aboutsummaryrefslogtreecommitdiff
path: root/bin/pkill/tests/pkill-j_test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/pkill/tests/pkill-j_test.sh')
-rw-r--r--bin/pkill/tests/pkill-j_test.sh142
1 files changed, 75 insertions, 67 deletions
diff --git a/bin/pkill/tests/pkill-j_test.sh b/bin/pkill/tests/pkill-j_test.sh
index 26e185fc8988..a844149cedb0 100644
--- a/bin/pkill/tests/pkill-j_test.sh
+++ b/bin/pkill/tests/pkill-j_test.sh
@@ -4,91 +4,99 @@
jail_name_to_jid()
{
local check_name="$1"
- jls -j "$check_name" -s | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g'
+ (
+ line="$(jls -n 2> /dev/null | grep name=$check_name )"
+ for nv in $line; do
+ local name="${nv%=*}"
+ if [ "${name}" = "jid" ]; then
+ eval $nv
+ echo $jid
+ break
+ fi
+ done
+ )
}
base=pkill_j_test
-if [ `id -u` -ne 0 ]; then
- echo "1..0 # skip Test needs uid 0."
- exit 0
-fi
-
echo "1..3"
-sleep=$(pwd)/sleep.txt
-ln -sf /bin/sleep $sleep
-
name="pkill -j <jid>"
-sleep_amount=5
-jail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \
- command=daemon -p ${PWD}/${base}_1_1.pid $sleep $sleep_amount &
+if [ `id -u` -eq 0 ]; then
+ sleep=$(pwd)/sleep.txt
+ ln -sf /bin/sleep $sleep
+ jail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \
+ command=daemon -p ${PWD}/${base}_1_1.pid $sleep 5 &
-jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
- command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount &
+ jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
+ command=daemon -p ${PWD}/${base}_1_2.pid $sleep 5 &
-$sleep $sleep_amount &
-
-for i in `seq 1 10`; do
+ $sleep 5 &
+ sleep 0.5
jid1=$(jail_name_to_jid ${base}_1_1)
jid2=$(jail_name_to_jid ${base}_1_2)
jid="${jid1},${jid2}"
- case "$jid" in
- [0-9]+,[0-9]+)
- break
- ;;
- esac
- sleep 0.1
-done
-sleep 0.5
-
-if pkill -f -j "$jid" $sleep && sleep 0.5 &&
- ! -f ${PWD}/${base}_1_1.pid &&
- ! -f ${PWD}/${base}_1_2.pid ; then
- echo "ok 1 - $name"
+ if pkill -f -j "$jid" $sleep && sleep 0.5 &&
+ ! -f ${PWD}/${base}_1_1.pid &&
+ ! -f ${PWD}/${base}_1_2.pid ; then
+ echo "ok 1 - $name"
+ else
+ echo "not ok 1 - $name"
+ fi 2>/dev/null
+ rm -f $sleep
+ [ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
+ [ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
+ wait
else
- echo "not ok 1 - $name"
-fi 2>/dev/null
-[ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
-[ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
-wait
+ echo "ok 1 - $name # skip Test needs uid 0."
+fi
name="pkill -j any"
-sleep_amount=6
-jail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \
- command=daemon -p ${PWD}/${base}_2_1.pid $sleep $sleep_amount &
+if [ `id -u` -eq 0 ]; then
+ sleep=$(pwd)/sleep.txt
+ ln -sf /bin/sleep $sleep
+ jail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \
+ command=daemon -p ${PWD}/${base}_2_1.pid $sleep 5 &
-jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \
- command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount &
+ jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \
+ command=daemon -p ${PWD}/${base}_2_2.pid $sleep 5 &
-$sleep $sleep_amount &
-chpid3=$!
-sleep 0.5
-if pkill -f -j any $sleep && sleep 0.5 &&
- [ ! -f ${PWD}/${base}_2_1.pid -a
- ! -f ${PWD}/${base}_2_2.pid ] && kill $chpid3; then
- echo "ok 2 - $name"
+ $sleep 5 &
+ sleep 0.5
+ chpid3=$!
+ if pkill -f -j any $sleep && sleep 0.5 &&
+ [ ! -f ${PWD}/${base}_2_1.pid -a
+ ! -f ${PWD}/${base}_2_2.pid ] && kill $chpid3; then
+ echo "ok 2 - $name"
+ else
+ echo "not ok 2 - $name"
+ fi 2>/dev/null
+ rm -f $sleep
+ [ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
+ [ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
+ wait
else
- echo "not ok 2 - $name"
-fi 2>/dev/null
-[ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
-[ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
-wait
+ echo "ok 2 - $name # skip Test needs uid 0."
+fi
name="pkill -j none"
-sleep_amount=7
-daemon -p ${PWD}/${base}_3_1.pid $sleep $sleep_amount
-jail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \
- command=daemon -p ${PWD}/${base}_3_2.pid $sleep $sleep_amount &
-sleep 1
-if pkill -f -j none "$sleep $sleep_amount" && sleep 1 &&
- [ ! -f ${PWD}/${base}_3_1.pid -a -f ${PWD}/${base}_3_2.pid ] ; then
- echo "ok 3 - $name"
+if [ `id -u` -eq 0 ]; then
+ sleep=$(pwd)/sleep.txt
+ ln -sf /bin/sleep $sleep
+ daemon -p ${PWD}/${base}_3_1.pid $sleep 5
+ jail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \
+ command=daemon -p ${PWD}/${base}_3_2.pid $sleep 5 &
+ sleep 1
+ if pkill -f -j none "$sleep 5" && sleep 1 &&
+ [ ! -f ${PWD}/${base}_3_1.pid -a -f ${PWD}/${base}_3_2.pid ] ; then
+ echo "ok 3 - $name"
+ else
+ ls ${PWD}/*.pid
+ echo "not ok 3 - $name"
+ fi 2>/dev/null
+ rm -f $sleep
+ [ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid)
+ [ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid)
else
- ls ${PWD}/*.pid
- echo "not ok 3 - $name"
-fi 2>/dev/null
-[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid)
-[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid)
-
-rm -f $sleep
+ echo "ok 3 - $name # skip Test needs uid 0."
+fi