42 lines
676 B
Perl
42 lines
676 B
Perl
|
#!/bin/sh
|
||
|
# $FreeBSD$
|
||
|
|
||
|
base=`basename $0`
|
||
|
|
||
|
echo "1..2"
|
||
|
|
||
|
name="pgrep -LF <pidfile>"
|
||
|
pidfile=`mktemp /tmp/$base.XXXXXX` || exit 1
|
||
|
sleep=`mktemp /tmp/$base.XXXXXX` || exit 1
|
||
|
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
|