#! /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 2>&1 ) else ( cd $PCP_PMDAS_DIR/news; $sudo ./Remove /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 >$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