#! /bin/sh
# PCP QA Test No. 224
# This used to cause a core dump for pmcd
#
# 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
. ./common.check

done_reset=false
status=0
LOCALHOST=`hostname`

_cleanup()
{
    if $done_reset
    then
	:
    else
	_restore_loggers
	_service pmcd restart 2>&1 | _filter_pcp_restart \
	| sed -e '/Waiting/s/\.\.\.*/[dots]/'
	_wait_for_pmcd
	_restore_auto_restart pmcd
	_service pmlogger restart 2>&1 | _filter_pcp_restart \
	| sed -e '/Waiting/s/\.\.\.*/[dots]/'
	_wait_for_pmlogger
	done_reset=true
    fi
    $sudo rm -fr $tmp.*
}

_filter()
{
    sed -e 's/value .*/value .../' \
	-e '/No value/d' |\
    $PCP_AWK_PROG '
	/0 or "primary"/ { print; next }
        /inst \[[0-9]* or "[0-9]*"\]/ { next }
	{ print }'

}

trap "_cleanup; exit \$status" 0 1 2 3 15

_stop_auto_restart pmcd

# real QA test starts here

# Note, _disable_loggers() still leaves a primary logger active, but it
# makes no requests to pmcd.
#
_disable_loggers || _exit 1

if ! _service pmcd restart 2>&1; then _exit 1; fi \
| _filter_pcp_restart \
| sed -e '/Waiting/s/\.\.\.*/[dots]/'
_wait_for_pmcd || _exit 1
if ! _service pmlogger restart 2>&1; then _exit 1; fi \
| _filter_pcp_restart \
| sed -e '/Waiting/s/\.\.\.*/[dots]/'
_wait_for_pmlogger || _exit 1
pminfo -f pmcd.numclients pmcd.pmlogger.host \
| _filter

# all done
exit
