diff options
Diffstat (limited to 'qa/110')
-rwxr-xr-x | qa/110 | 227 |
1 files changed, 227 insertions, 0 deletions
@@ -0,0 +1,227 @@ +#! /bin/sh +# PCP QA Test No. 110 +# check out simple 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 + +signal=$PCP_BINADM_DIR/pmsignal +status=1 + +PMDA_LOG_PATH=`echo $PCP_PMCDLOG_PATH | sed -e 's/pmcd.log/simple.log/'` + +_cleanup() +{ + [ -f $tmp.conf.bak ] && $sudo cp $tmp.conf.bak $home/$iam/$iam.conf + if diff $tmp.pmcd.conf $PCP_PMCDCONF_PATH > /dev/null 2>&1 + then + : + else + +# do a default install which ensures the pmns and any views are installed + + $sudo ./Install < /dev/null > /dev/null 2>&1 + +# PMDA may have been installed differently to default. As everything is +# installed we can use the old pmcd.conf file to restore state. + + if diff $tmp.pmcd.conf $PCP_PMCDCONF_PATH > /dev/null 2>&1 + then + : + else + [ -f $tmp.pmcd.conf ] && $sudo mv $tmp.pmcd.conf $PCP_PMCDCONF_PATH + $sudo $signal -a -s HUP pmcd + fi + fi + $sudo rm -f $tmp.* + exit $status +} + +trap "_cleanup" 0 1 2 3 15 + +_failed() +{ + echo + echo "... failed! ... here is the Install log ..." + cat $tmp.out + echo + echo "... and the tail of the pmcd log ..." + tail -20 $PCP_PMCDLOG_PATH + echo + echo "...and the PMDA log ..." + cat $PMDA_LOG_PATH +} + +_filter() +{ + _filter_pmda_install | \ + sed \ + -e 's/ or perl//' \ + -e 's/ or python//' \ + -e "s;$tmp;TMP;" \ + -e "s/$port1/PORT1/" \ + -e "s/$port2/PORT2/" +} + +_full() +{ + echo "--- pmcd.conf ---" >>$here/$seq.full + cat $PCP_PMCDCONF_PATH >>$here/$seq.full + echo "--- pmcd.log ---" >>$here/$seq.full + cat $PCP_PMCDLOG_PATH >>$here/$seq.full + echo "--- simple.log ---" >>$here/$seq.full + if [ -f $PMDA_LOG_PATH ] + then + cat $PMDA_LOG_PATH >>$here/$seq.full + else + echo "$PMDA_LOG_PATH: file not found" >>$here/$seq.full + fi + echo >>$here/$seq.full +} + +rm -f $seq.full + +# real QA test starts here +home=$PCP_PMDAS_DIR +iam=simple +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 + +if $sudo make clobber >$tmp.out 2>&1 +then + : +else + cat $tmp.out + echo "Arrgh, make clobber failed" + exit +fi + +# start from a known starting point +$sudo ./Remove >/dev/null 2>&1 + +echo +echo "=== pipe daemon agent ===" +echo "=== pipe daemon agent ===" >>$here/$seq.full +$sudo ./Remove >$tmp.out 2>&1 +$sudo rm -f $PMDA_LOG_PATH +echo 'both +daemon +pipe' | $sudo ./Install -e >>$tmp.out 2>&1 +_full + +_filter <$tmp.out + +if pminfo -v simple +then + : +else + _failed +fi + +echo +echo "=== Unix socket daemon agent ===" +echo "=== Unix socket daemon agent ===" >>$here/$seq.full +$sudo ./Remove >$tmp.out 2>&1 +echo 'both +daemon +socket +Unix +'"$tmp.fifo-1" | $sudo ./Install -e >>$tmp.out 2>&1 +$sudo rm -f $PMDA_LOG_PATH +echo 'both +daemon +socket +Unix +'"$tmp.fifo-2" | $sudo ./Install -e >>$tmp.out 2>&1 +_full + +_filter <$tmp.out + +if pminfo -v simple +then + : +else + _failed +fi + +echo +echo "=== Internet socket daemon agent ===" +echo "=== Internet socket daemon agent ===" >>$here/$seq.full +$sudo ./Remove >$tmp.out 2>&1 + +# pick a tcp port that is not in use +# +port1=`_get_port tcp 5650 5699` +if [ -z "$port1" ] +then + echo "Arrgh ... no free TCP port in the range 5650 ... 5699" + exit 1 +fi + +echo 'both +daemon +socket +Internet +'$port1 | $sudo ./Install -e >>$tmp.out 2>&1 + +# use next port this time +port2=`expr $port1 + 1` + +$sudo rm -f $PMDA_LOG_PATH +echo 'both +daemon +socket +Internet +'$port2 | $sudo ./Install -e >>$tmp.out 2>&1 +_full + +_filter <$tmp.out + +if pminfo -v simple +then + : +else + _failed +fi + +echo +echo "=== dso agent ===" +echo "=== dso agent ===" >>$here/$seq.full +$sudo ./Remove >$tmp.out 2>&1 +echo 'both +dso' | $sudo ./Install -e >>$tmp.out 2>&1 +$sudo rm -f $PMDA_LOG_PATH +echo 'both +dso' | $sudo ./Install -e >>$tmp.out 2>&1 +_full + +_filter <$tmp.out + +if pminfo -v simple +then + : +else + _failed +fi + +$sudo ./Remove >$tmp.out 2>&1 +_filter <$tmp.out + +status=0 +exit |