#! /bin/sh
# PCP QA Test No. 152
# pmcd.numclients was incorrect
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard filters
. ./common.product
. ./common.filter

trap "rm -f $tmp.*; exit" 0 1 2 3 15

# real QA test starts here
( date; pminfo -f pmcd.client ) >$tmp.before
pminfo -f pmcd.numclients | tee $seq_full | sed -e '/^$/d' >$tmp.out
N=`sed -n '/value/s/    value //p' $tmp.out`
echo "N=$N" >>$seq_full
sed "s/$N/N/" $tmp.out
# expect N+4, but pmie processes come and go, so N+4 +/- 1 seems
# about right
#
N=`expr $N + 4`
MIN=`expr $N - 1`
MAX=`expr $N + 1`
PAT="($MIN|$N|$MAX)"
echo "PAT=$PAT" >>$seq_full

for i in 1 2 3 4
do
    pmval -s3 -t5 pmcd.numagents >$tmp.$i 2>&1 &
done

while true
do
    touch $tmp.started
    for i in 1 2 3 4
    do
	[ -s $tmp.$i ] || rm -f $tmp.started
    done
    [ -f $tmp.started ] && break
    sleep 2
done

pminfo -f pmcd.numclients | tee -a $seq_full | sed -e '/^$/d' >$tmp.out
( date; pminfo -f pmcd.client ) >$tmp.after

if grep -E "value $PAT" $tmp.out >/dev/null
then
    sed <$tmp.out \
	-e "s/$MIN/N+4/" \
	-e "s/$N/N+4/" \
	-e "s/$MAX/N+4/"
else
    echo
    echo "Error: expected value $N"
    cat $tmp.out
    echo "--- before"
    cat $tmp.before
    echo
    echo "--- after"
    cat $tmp.after
fi

exit 0
