42 lines
676 B
Bash
42 lines
676 B
Bash
#!/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
|