diff options
Diffstat (limited to 'qa/347')
-rwxr-xr-x | qa/347 | 143 |
1 files changed, 143 insertions, 0 deletions
@@ -0,0 +1,143 @@ +#! /bin/sh +# PCP QA Test No. 347 +# Exercise the Install/Remove for the news PMDA +# +# 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 + +perl -e "use PCP::PMDA" >/dev/null 2>&1 +test $? -eq 0 || _notrun "PCP::PMDA perl module is not installed" + +rm -f $seq.out +if [ $PCP_VER -lt 3600 ] +then + ln $seq.out.1 $seq.out || exit 1 +else + ln $seq.out.2 $seq.out || exit 1 +fi + +status=1 +done_clean=false + +_cleanup() +{ + if $done_clean + then + : + else + [ -f $tmp.pmcd.conf ] && $sudo mv $tmp.pmcd.conf $PCP_PMCDCONF_PATH + rm -f $tmp.* + $sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start + _wait_for_pmcd + _wait_for_pmlogger + if $install_on_cleanup + then + ( cd $PCP_PMDAS_DIR/news; $sudo ./Install </dev/null >/dev/null 2>&1 ) + else + ( cd $PCP_PMDAS_DIR/news; $sudo ./Remove </dev/null >/dev/null 2>&1 ) + fi + done_clean=true + fi + exit $status +} + +install_on_cleanup=false +pminfo news >/dev/null 2>&1 && install_on_cleanup=true + +trap "_cleanup" 0 1 2 3 15 + +_filter() +{ + _filter_pmda_install | \ + sed -e 's/^Install news as a daemon or perl agent? \[daemon] //' +} + +_filter_info() +{ + sed \ + -e 's/value -[0-9][0-9]*\.[0-9]*/value NEGATIVE NUMBER/' \ + -e 's/value -[0-9][0-9]*/value NEGATIVE NUMBER/' \ + -e 's/value [0-9][0-9]*\.[0-9]*/value NUMBER/' \ + -e 's/value [0-9][0-9]*/value NUMBER/' +} + +# real QA test starts here +home=$PCP_PMDAS_DIR +iam=news +if [ ! -d $home/$iam ] +then + echo "Where is $home/$iam?" + exit 1 +fi +cd $home/$iam +unset ROOT MAKEFLAGS + +# copy the pmcd config file to restore state later. +cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf + +# start from a known starting point +$sudo ./Remove >/dev/null 2>&1 + +# now that pmcd is also known to be alive, give the news PMDA +# a bit more breathing space to respond +# +pmstore pmcd.control.timeout 20 >/dev/null 2>&1 +PMCD_REQUEST_TIMEOUT=25 +export PMCD_REQUEST_TIMEOUT + +echo +echo "=== default $iam agent installation ===" +$sudo ./Remove >$tmp.out 2>&1 + +$sudo ./Install </dev/null >>$tmp.out 2>&1 +_filter <$tmp.out + +if pminfo -v $iam +then + : +else + echo "... failed! ... here is the Install log ..." + cat $tmp.out +fi + +echo +echo "=== validate values ===" +pminfo -f `pminfo $iam | LC_COLLATE=POSIX sort` >$tmp.out +_filter_info <$tmp.out + +if fgrep -s "No PMCD agent" $tmp.out >/dev/null 2>&1 +then + echo + echo "Looks bad ..." + echo + echo "pmcd.log ..." + cat $PCP_PMCDLOG_PATH + echo + echo "news.log ..." + if [ -d $PCP_LOG_DIR/pmcd ] + then + cat $PCP_LOG_DIR/pmcd/news.log + else + cat $PCP_LOG_DIR/news.log + fi +fi + +echo +echo "=== remove $iam agent ===" +$sudo ./Remove >$tmp.out 2>&1 +_filter <$tmp.out + +# be a good citizen +# +pmstore pmcd.control.timeout 5 >/dev/null 2>&1 + +status=0 +exit |