diff options
Diffstat (limited to 'bin/pkill/tests')
29 files changed, 1137 insertions, 0 deletions
diff --git a/bin/pkill/tests/Makefile b/bin/pkill/tests/Makefile new file mode 100644 index 0000000..be46707 --- /dev/null +++ b/bin/pkill/tests/Makefile @@ -0,0 +1,38 @@ +# $FreeBSD$ + +.include <bsd.own.mk> + +TAP_TESTS_SH= pgrep-F_test +TAP_TESTS_SH+= pgrep-LF_test +TAP_TESTS_SH+= pgrep-P_test +TAP_TESTS_SH+= pgrep-U_test +TAP_TESTS_SH+= pgrep-_g_test +TAP_TESTS_SH+= pgrep-_s_test +TAP_TESTS_SH+= pgrep-g_test +TAP_TESTS_SH+= pgrep-i_test +TAP_TESTS_SH+= pgrep-j_test +TEST_METADATA.pgrep-j_test+= required_user="root" +TEST_METADATA.pgrep-j_test+= required_programs="jail jls" +TAP_TESTS_SH+= pgrep-l_test +TAP_TESTS_SH+= pgrep-n_test +TAP_TESTS_SH+= pgrep-o_test +TAP_TESTS_SH+= pgrep-q_test +TAP_TESTS_SH+= pgrep-s_test +TAP_TESTS_SH+= pgrep-t_test +TAP_TESTS_SH+= pgrep-v_test +TAP_TESTS_SH+= pgrep-x_test +TAP_TESTS_SH+= pkill-F_test +TAP_TESTS_SH+= pkill-LF_test +TAP_TESTS_SH+= pkill-P_test +TAP_TESTS_SH+= pkill-U_test +TAP_TESTS_SH+= pkill-_g_test +TAP_TESTS_SH+= pkill-g_test +TAP_TESTS_SH+= pkill-i_test +TAP_TESTS_SH+= pkill-j_test +TEST_METADATA.pkill-j_test+= required_user="root" +TEST_METADATA.pkill-j_test+= required_programs="jail jls" +TAP_TESTS_SH+= pkill-s_test +TAP_TESTS_SH+= pkill-t_test +TAP_TESTS_SH+= pkill-x_test + +.include <bsd.test.mk> diff --git a/bin/pkill/tests/pgrep-F_test.sh b/bin/pkill/tests/pgrep-F_test.sh new file mode 100644 index 0000000..4d8feaa --- /dev/null +++ b/bin/pkill/tests/pgrep-F_test.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pgrep -F <pidfile>" +pidfile=$(pwd)/pidfile.txt +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +echo $chpid > $pidfile +pid=`pgrep -f -F $pidfile $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok - $name" +else + echo "not ok - $name" +fi +kill "$chpid" +rm -f $pidfile +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-LF_test.sh b/bin/pkill/tests/pgrep-LF_test.sh new file mode 100644 index 0000000..4818869 --- /dev/null +++ b/bin/pkill/tests/pgrep-LF_test.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pgrep -LF <pidfile>" +pidfile=$(pwd)/pidfile.txt +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +daemon -p $pidfile $sleep 5 +sleep 0.3 +chpid=`cat $pidfile` +pid=`pgrep -f -L -F $pidfile $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +kill "$chpid" + +# Be sure we cannot find process which pidfile is not locked. +$sleep 5 & +sleep 0.3 +chpid=$! +echo $chpid > $pidfile +pgrep -f -L -F $pidfile $sleep 2>/dev/null +ec=$? +case $ec in +0) + echo "not ok 2 - $name" + ;; +*) + echo "ok 2 - $name" + ;; +esac + +kill "$chpid" +rm -f $pidfile +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-P_test.sh b/bin/pkill/tests/pgrep-P_test.sh new file mode 100644 index 0000000..5a5cdcf --- /dev/null +++ b/bin/pkill/tests/pgrep-P_test.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pgrep -P <ppid>" +ppid=$$ +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -P $ppid $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok - $name" +else + echo "not ok - $name" +fi +kill $chpid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-U_test.sh b/bin/pkill/tests/pgrep-U_test.sh new file mode 100644 index 0000000..2e7f24d --- /dev/null +++ b/bin/pkill/tests/pgrep-U_test.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pgrep -U <uid>" +ruid=`id -ur` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -U $ruid $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +kill $chpid +rm -f $sleep + +name="pgrep -U <user>" +ruid=`id -urn` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -U $ruid $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +kill $chpid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-_g_test.sh b/bin/pkill/tests/pgrep-_g_test.sh new file mode 100644 index 0000000..fbe7b08 --- /dev/null +++ b/bin/pkill/tests/pgrep-_g_test.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pgrep -G <gid>" +rgid=`id -gr` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -G $rgid $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +kill $chpid +rm -f $sleep + +name="pgrep -G <group>" +rgid=`id -grn` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -G $rgid $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +kill $chpid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-_s_test.sh b/bin/pkill/tests/pgrep-_s_test.sh new file mode 100644 index 0000000..ce0bde3 --- /dev/null +++ b/bin/pkill/tests/pgrep-_s_test.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +exp_pid="$(ps ax | grep '\[idle\]' | awk '{print $1}')" + +name="pgrep -S" +pid=`pgrep -Sx idle` +if [ "$pid" = "$exp_pid" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +pid=`pgrep -x idle` +if [ "$pid" != "$exp_pid" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi diff --git a/bin/pkill/tests/pgrep-g_test.sh b/bin/pkill/tests/pgrep-g_test.sh new file mode 100644 index 0000000..1414908 --- /dev/null +++ b/bin/pkill/tests/pgrep-g_test.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pgrep -g <pgrp>" +pgrp=`ps -o tpgid -p $$ | tail -1` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -g $pgrp $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +kill $chpid +rm -f $sleep + +name="pgrep -g 0" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -g 0 $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +kill $chpid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-i_test.sh b/bin/pkill/tests/pgrep-i_test.sh new file mode 100644 index 0000000..b9ecfbc --- /dev/null +++ b/bin/pkill/tests/pgrep-i_test.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pgrep -i" +sleep=$(pwd)/sleep.txt +usleep="${sleep}XXX" +touch $usleep +lsleep="${sleep}xxx" +ln -sf /bin/sleep $usleep +$usleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -i $lsleep` +if [ "$pid" = "$chpid" ]; then + echo "ok - $name" +else + echo "not ok - $name" +fi +kill $chpid +rm -f $sleep $usleep diff --git a/bin/pkill/tests/pgrep-j_test.sh b/bin/pkill/tests/pgrep-j_test.sh new file mode 100644 index 0000000..1d62813 --- /dev/null +++ b/bin/pkill/tests/pgrep-j_test.sh @@ -0,0 +1,116 @@ +#!/bin/sh +# $FreeBSD$ + +jail_name_to_jid() +{ + local check_name="$1" + jls -j "$check_name" -s | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g' +} + +base=pgrep_j_test + +if [ `id -u` -ne 0 ]; then + echo "1..0 # skip Test needs uid 0." + exit 0 +fi + +echo "1..4" + +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep + +name="pgrep -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 & + +jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount & + +for i in `seq 1 10`; do + 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 + +pid1="$(pgrep -f -x -j "$jid" "$sleep $sleep_amount" | sort)" +pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_1_1.pid)" \ + $(cat ${PWD}/${base}_1_2.pid) | sort) +if [ "$pid1" = "$pid2" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'" +fi +[ -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 + +name="pgrep -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 & + +jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount & + +sleep 2 +pid1="$(pgrep -f -x -j any "$sleep $sleep_amount" | sort)" +pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_2_1.pid)" \ + $(cat ${PWD}/${base}_2_2.pid) | sort) +if [ "$pid1" = "$pid2" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'" +fi +[ -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 + +name="pgrep -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 2 +pid="$(pgrep -f -x -j none "$sleep $sleep_amount")" +if [ "$pid" = "$(cat ${PWD}/${base}_3_1.pid)" ]; then + echo "ok 3 - $name" +else + echo "not ok 3 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'" +fi +[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat $PWD/${base}_3_1.pid) +[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat $PWD/${base}_3_2.pid) +wait + +# test 4 is like test 1 except with jname instead of jid. +name="pgrep -j <jname>" +sleep_amount=8 +jail -c path=/ name=${base}_4_1 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_4_1.pid $sleep $sleep_amount & + +jail -c path=/ name=${base}_4_2 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_4_2.pid $sleep $sleep_amount & + +sleep 0.5 + +jname="${base}_4_1,${base}_4_2" +pid1="$(pgrep -f -x -j "$jname" "$sleep $sleep_amount" | sort)" +pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_4_1.pid)" \ + $(cat ${PWD}/${base}_4_2.pid) | sort) +if [ "$pid1" = "$pid2" ]; then + echo "ok 4 - $name" +else + echo "not ok 4 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'" +fi +[ -f ${PWD}/${base}_4_1.pid ] && kill $(cat ${PWD}/${base}_4_1.pid) +[ -f ${PWD}/${base}_4_2.pid ] && kill $(cat ${PWD}/${base}_4_2.pid) +wait + +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-l_test.sh b/bin/pkill/tests/pgrep-l_test.sh new file mode 100644 index 0000000..49273b3 --- /dev/null +++ b/bin/pkill/tests/pgrep-l_test.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pgrep -l" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pid=$! +if [ "$pid $sleep 5" = "`pgrep -f -l $sleep`" ]; then + echo "ok - $name" +else + echo "not ok - $name" +fi +kill $pid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-n_test.sh b/bin/pkill/tests/pgrep-n_test.sh new file mode 100644 index 0000000..1b6fe83 --- /dev/null +++ b/bin/pkill/tests/pgrep-n_test.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pgrep -n" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +oldpid=$! +$sleep 5 & +sleep 0.3 +newpid=$! +pid=`pgrep -f -n $sleep` +if [ "$pid" = "$newpid" ]; then + echo "ok - $name" +else + echo "not ok - $name" +fi +kill $oldpid +kill $newpid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-o_test.sh b/bin/pkill/tests/pgrep-o_test.sh new file mode 100644 index 0000000..250f230 --- /dev/null +++ b/bin/pkill/tests/pgrep-o_test.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pgrep -o" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +oldpid=$! +$sleep 5 & +sleep 0.3 +newpid=$! +pid=`pgrep -f -o $sleep` +if [ "$pid" = "$oldpid" ]; then + echo "ok - $name" +else + echo "not ok - $name" +fi +kill $oldpid +kill $newpid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-q_test.sh b/bin/pkill/tests/pgrep-q_test.sh new file mode 100644 index 0000000..2626a5e --- /dev/null +++ b/bin/pkill/tests/pgrep-q_test.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..4" + +name="pgrep -q" +sleep0=$(pwd)/sleep0.txt +sleep1=$(pwd)/sleep1.txt +ln -sf /bin/sleep $sleep0 +$sleep0 5 & +sleep 0.3 +pid=$! +out="`pgrep -q -f $sleep0 2>&1`" +if [ $? -eq 0 ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +if [ -z "${out}" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +out="`pgrep -q -f $sleep1 2>&1`" +if [ $? -ne 0 ]; then + echo "ok 3 - $name" +else + echo "not ok 3 - $name" +fi +if [ -z "${out}" ]; then + echo "ok 4 - $name" +else + echo "not ok 4 - $name" +fi +kill $pid +rm -f $sleep0 $sleep1 diff --git a/bin/pkill/tests/pgrep-s_test.sh b/bin/pkill/tests/pgrep-s_test.sh new file mode 100644 index 0000000..82c1ef9 --- /dev/null +++ b/bin/pkill/tests/pgrep-s_test.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pgrep -s <sid>" +sid=`ps -o tsid -p $$ | tail -1` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -s $sid $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +kill $chpid +rm -f $sleep + +name="pgrep -s 0" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -s 0 $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +kill $chpid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-t_test.sh b/bin/pkill/tests/pgrep-t_test.sh new file mode 100644 index 0000000..a8527d5 --- /dev/null +++ b/bin/pkill/tests/pgrep-t_test.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pgrep -t <tty>" +tty=`ps -x -o tty -p $$ | tail -1` +if [ "$tty" = "??" -o "$tty" = "-" ]; then + tty="-" + ttyshort="-" +else + case $tty in + pts/*) ttyshort=`echo $tty | cut -c 5-` ;; + *) ttyshort=`echo $tty | cut -c 4-` ;; + esac +fi +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +chpid=$! +pid=`pgrep -f -t $tty $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +pid=`pgrep -f -t $ttyshort $sleep` +if [ "$pid" = "$chpid" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +kill $chpid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-v_test.sh b/bin/pkill/tests/pgrep-v_test.sh new file mode 100644 index 0000000..b9835bc --- /dev/null +++ b/bin/pkill/tests/pgrep-v_test.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pgrep -v" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pid=$! +if [ -z "`pgrep -f -v $sleep | egrep '^'"$pid"'$'`" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +if [ ! -z "`pgrep -f -v -x x | egrep '^'"$pid"'$'`" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +kill $pid +rm -f $sleep diff --git a/bin/pkill/tests/pgrep-x_test.sh b/bin/pkill/tests/pgrep-x_test.sh new file mode 100644 index 0000000..1defde2 --- /dev/null +++ b/bin/pkill/tests/pgrep-x_test.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..4" + +name="pgrep -x" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pid=$! +if [ ! -z "`pgrep -x sleep | egrep '^'"$pid"'$'`" ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +if [ -z "`pgrep -x slee | egrep '^'"$pid"'$'`" ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +name="pgrep -x -f" +if [ ! -z "`pgrep -x -f ''"$sleep"' 5' | egrep '^'"$pid"'$'`" ]; then + echo "ok 3 - $name" +else + echo "not ok 3 - $name" +fi +if [ -z "`pgrep -x -f ''"$sleep"' ' | egrep '^'"$pid"'$'`" ]; then + echo "ok 4 - $name" +else + echo "not ok 4 - $name" +fi +kill $pid +rm -f $sleep diff --git a/bin/pkill/tests/pkill-F_test.sh b/bin/pkill/tests/pkill-F_test.sh new file mode 100644 index 0000000..48ad474 --- /dev/null +++ b/bin/pkill/tests/pkill-F_test.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pkill -F <pidfile>" +pidfile=$(pwd)/pidfile.txt +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +echo $! > $pidfile +pkill -f -F $pidfile $sleep +ec=$? +case $ec in +0) + echo "ok - $name" + ;; +*) + echo "not ok - $name" + ;; +esac + +rm -f $pidfile +rm -f $sleep diff --git a/bin/pkill/tests/pkill-LF_test.sh b/bin/pkill/tests/pkill-LF_test.sh new file mode 100644 index 0000000..fcafd0a --- /dev/null +++ b/bin/pkill/tests/pkill-LF_test.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pkill -LF <pidfile>" +pidfile=$(pwd)/pidfile.txt +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +daemon -p $pidfile $sleep 5 +sleep 0.3 +pkill -f -L -F $pidfile $sleep +ec=$? +case $ec in +0) + echo "ok 1 - $name" + ;; +*) + echo "not ok 1 - $name" + ;; +esac + +# Be sure we cannot kill process which pidfile is not locked. +$sleep 5 & +sleep 0.3 +chpid=$! +echo $chpid > $pidfile +pkill -f -L -F $pidfile $sleep 2>/dev/null +ec=$? +case $ec in +0) + echo "not ok 2 - $name" + ;; +*) + echo "ok 2 - $name" + ;; +esac + +kill "$chpid" +rm -f $pidfile +rm -f $sleep diff --git a/bin/pkill/tests/pkill-P_test.sh b/bin/pkill/tests/pkill-P_test.sh new file mode 100644 index 0000000..2030710 --- /dev/null +++ b/bin/pkill/tests/pkill-P_test.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pkill -P <ppid>" +ppid=$$ +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -P $ppid $sleep +ec=$? +case $ec in +0) + echo "ok - $name" + ;; +*) + echo "not ok - $name" + ;; +esac + +rm -f $sleep diff --git a/bin/pkill/tests/pkill-U_test.sh b/bin/pkill/tests/pkill-U_test.sh new file mode 100644 index 0000000..04395e5 --- /dev/null +++ b/bin/pkill/tests/pkill-U_test.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pkill -U <uid>" +ruid=`id -ur` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -U $ruid $sleep +ec=$? +case $ec in +0) + echo "ok 1 - $name" + ;; +*) + echo "not ok 1 - $name" + ;; +esac +rm -f $sleep + +name="pkill -U <user>" +ruid=`id -urn` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -U $ruid $sleep +ec=$? +case $ec in +0) + echo "ok 2 - $name" + ;; +*) + echo "not ok 2 - $name" + ;; +esac +rm -f $sleep diff --git a/bin/pkill/tests/pkill-_g_test.sh b/bin/pkill/tests/pkill-_g_test.sh new file mode 100644 index 0000000..1739ac8 --- /dev/null +++ b/bin/pkill/tests/pkill-_g_test.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pkill -G <gid>" +rgid=`id -gr` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -G $rgid $sleep +ec=$? +case $ec in +0) + echo "ok 1 - $name" + ;; +*) + echo "not ok 1 - $name" + ;; +esac +rm -f $sleep + +name="pkill -G <group>" +rgid=`id -grn` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -G $rgid $sleep +ec=$? +case $ec in +0) + echo "ok 2 - $name" + ;; +*) + echo "not ok 2 - $name" + ;; +esac +rm -f $sleep diff --git a/bin/pkill/tests/pkill-g_test.sh b/bin/pkill/tests/pkill-g_test.sh new file mode 100644 index 0000000..29d6ab7 --- /dev/null +++ b/bin/pkill/tests/pkill-g_test.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pkill -g <pgrp>" +pgrp=`ps -o tpgid -p $$ | tail -1` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -g $pgrp $sleep +ec=$? +case $ec in +0) + echo "ok 1 - $name" + ;; +*) + echo "not ok 1 - $name" + ;; +esac +rm -f $sleep + +name="pkill -g 0" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -g 0 $sleep +ec=$? +case $ec in +0) + echo "ok 2 - $name" + ;; +*) + echo "not ok 2 - $name" + ;; +esac +rm -f $sleep diff --git a/bin/pkill/tests/pkill-i_test.sh b/bin/pkill/tests/pkill-i_test.sh new file mode 100644 index 0000000..b9b8df8 --- /dev/null +++ b/bin/pkill/tests/pkill-i_test.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..1" + +name="pkill -i" +sleep=$(pwd)/sleep.txt +usleep="${sleep}XXX" +touch $usleep +lsleep="${sleep}xxx" +ln -sf /bin/sleep $usleep +$usleep 5 & +sleep 0.3 +pkill -f -i $lsleep +ec=$? +case $ec in +0) + echo "ok - $name" + ;; +*) + echo "not ok - $name" + ;; +esac +rm -f $sleep $usleep diff --git a/bin/pkill/tests/pkill-j_test.sh b/bin/pkill/tests/pkill-j_test.sh new file mode 100644 index 0000000..0af24cf --- /dev/null +++ b/bin/pkill/tests/pkill-j_test.sh @@ -0,0 +1,120 @@ +#!/bin/sh +# $FreeBSD$ + +jail_name_to_jid() +{ + local check_name="$1" + jls -j "$check_name" -s | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g' +} + +base=pkill_j_test + +if [ `id -u` -ne 0 ]; then + echo "1..0 # skip Test needs uid 0." + exit 0 +fi + +echo "1..4" + +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 & + +jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount & + +$sleep $sleep_amount & + +for i in `seq 1 10`; do + 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" +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 + +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 & + +jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount & + +$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" +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 + +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" +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) +wait + +# test 4 is like test 1 except with jname instead of jid. +name="pkill -j <jname>" +sleep_amount=8 +jail -c path=/ name=${base}_4_1 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_4_1.pid $sleep $sleep_amount & + +jail -c path=/ name=${base}_4_2 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_4_2.pid $sleep $sleep_amount & + +$sleep $sleep_amount & + +sleep 0.5 + +jname="${base}_4_1,${base}_4_2" +if pkill -f -j "$jname" $sleep && sleep 0.5 && + ! -f ${PWD}/${base}_4_1.pid && + ! -f ${PWD}/${base}_4_2.pid ; then + echo "ok 4 - $name" +else + echo "not ok 4 - $name" +fi 2>/dev/null +[ -f ${PWD}/${base}_4_1.pid ] && kill $(cat ${PWD}/${base}_4_1.pid) +[ -f ${PWD}/${base}_4_2.pid ] && kill $(cat ${PWD}/${base}_4_2.pid) +wait + +rm -f $sleep diff --git a/bin/pkill/tests/pkill-s_test.sh b/bin/pkill/tests/pkill-s_test.sh new file mode 100644 index 0000000..0a9587b --- /dev/null +++ b/bin/pkill/tests/pkill-s_test.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pkill -s <sid>" +sid=`ps -o tsid -p $$ | tail -1` +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -s $sid $sleep +ec=$? +case $ec in +0) + echo "ok 1 - $name" + ;; +*) + echo "not ok 1 - $name" + ;; +esac +rm -f $sleep + +name="pkill -s 0" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -s 0 $sleep +ec=$? +case $ec in +0) + echo "ok 2 - $name" + ;; +*) + echo "not ok 2 - $name" + ;; +esac +rm -f $sleep diff --git a/bin/pkill/tests/pkill-t_test.sh b/bin/pkill/tests/pkill-t_test.sh new file mode 100644 index 0000000..07f511b --- /dev/null +++ b/bin/pkill/tests/pkill-t_test.sh @@ -0,0 +1,45 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..2" + +name="pkill -t <tty>" +tty=`ps -x -o tty -p $$ | tail -1` +if [ "$tty" = "??" -o "$tty" = "-" ]; then + tty="-" + ttyshort="-" +else + case $tty in + pts/*) ttyshort=`echo $tty | cut -c 5-` ;; + *) ttyshort=`echo $tty | cut -c 4-` ;; + esac +fi +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -f -t $tty $sleep +ec=$? +case $ec in +0) + echo "ok 1 - $name" + ;; +*) + echo "not ok 1 - $name" + ;; +esac +$sleep 5 & +sleep 0.3 +pkill -f -t $ttyshort $sleep +ec=$? +case $ec in +0) + echo "ok 2 - $name" + ;; +*) + echo "not ok 2 - $name" + ;; +esac +rm -f $sleep diff --git a/bin/pkill/tests/pkill-x_test.sh b/bin/pkill/tests/pkill-x_test.sh new file mode 100644 index 0000000..5ff0d68 --- /dev/null +++ b/bin/pkill/tests/pkill-x_test.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# $FreeBSD$ + +base=`basename $0` + +echo "1..4" + +name="pkill -x" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -x slee -P $$ +if [ $? -ne 0 ]; then + echo "ok 1 - $name" +else + echo "not ok 1 - $name" +fi +pkill -x sleep -P $$ +if [ $? -eq 0 ]; then + echo "ok 2 - $name" +else + echo "not ok 2 - $name" +fi +rm -f $sleep + +name="pkill -x -f" +sleep=$(pwd)/sleep.txt +ln -sf /bin/sleep $sleep +$sleep 5 & +sleep 0.3 +pkill -x -f "$sleep " -P $$ +if [ $? -ne 0 ]; then + echo "ok 3 - $name" +else + echo "not ok 3 - $name" +fi +pkill -x -f "$sleep 5" -P $$ +if [ $? -eq 0 ]; then + echo "ok 4 - $name" +else + echo "not ok 4 - $name" +fi +rm -f $sleep |