diff options
Diffstat (limited to 'qa/156')
-rwxr-xr-x | qa/156 | 148 |
1 files changed, 148 insertions, 0 deletions
@@ -0,0 +1,148 @@ +#! /bin/sh +# PCP QA Test No. 156 +# check out sample 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 + +$sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start +_wait_for_pmcd +_wait_for_pmlogger + +_filter() +{ + _filter_pmda_install | \ + sed -e 's/ 1[1-2][0-9][0-9] values/ 1200+ values/' \ + -e 's/ 1[0-9] warnings/ 10+ warnings/' \ + -e 's/ 3 warnings/ 10+ warnings/' \ + -e 's/ 1[0-9][0-9] metrics/ 100+ metrics/' \ + -e "s;$tmp;TMP;" \ + -e "s/$port1/PORT1/" \ + -e "s/$port2/PORT2/" +} + +_filter_rem() +{ + sed \ + -e '/mips_64/d' \ + -e '/mips_o32/d' \ + -e '/mips_n32/d' +} + +_check_pmda_gone() +{ + sleep 2 + pminfo -v $1 && echo "Error: pminfo -v found some \"$1\" metrics" + ps $PCP_PS_ALL_FLAGS | grep pmda$1 >$tmp.tmp + if [ ! -z "`grep -v grep <$tmp.tmp`" ] + then + echo "Error: some \"$1\" PMDAs still present" + cat $tmp.tmp + fi + rm -f $tmp.tmp +} + +status=1 + +# save pmcd.conf and restore it after the test +cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf + +home=$PCP_PMDAS_DIR +iam=sample +if [ ! -d $home/$iam ] +then + echo "Where is $home/$iam?" + exit 1 +fi +cd $home/$iam +unset ROOT MAKEFLAGS + +if [ ! -f dynamic.indom ] +then + echo "1 one" >$tmp.indom + echo "2 two" >>$tmp.indom + $sudo cp $tmp.indom dynamic.indom +fi + +# make sure sample agent is running again at the end, so other QA tests +# continue to work +# +trap "echo; echo 'Reinstall PMDA ...'; $sudo ./Install </dev/null >$tmp.out; _filter <$tmp.out; $sudo cp $tmp.pmcd.conf $PCP_PMCDCONF_PATH; $sudo rm -f $tmp.*; exit \$status" 0 1 2 3 15 + +# real QA test starts here + +echo +echo "=== remove agent ===" +$sudo ./Remove >$tmp.out 2>&1 +_filter_rem <$tmp.out +_check_pmda_gone $iam + +echo +echo "=== pipe agent ===" +echo 'both +pipe' | $sudo ./Install -e >$tmp.out 2>&1 +_filter <$tmp.out +pminfo -v sample || echo "... failed!" +echo 'both +pipe' | $sudo ./Install -e >$tmp.out 2>&1 +_filter <$tmp.out +pminfo -v sample || echo "... failed!" + +echo +echo "=== socket Internet agent ===" + +# pick a tcp port that is not in use +# +port1=`_get_port tcp 5670 5689` +if [ -z "$port1" ] +then + echo "Arrgh ... no free TCP port in the range 5670 ... 5689" + exit 1 +fi + +echo 'both +socket +Internet +'$port1 | $sudo ./Install -e >$tmp.out 2>&1 +_filter <$tmp.out +pminfo -v sample || echo "... failed!" + +# use next port this time +port2=`expr $port1 + 1` + +echo 'both +socket +Internet +'$port2 | $sudo ./Install -e >$tmp.out 2>&1 +_filter <$tmp.out +pminfo -v sample || echo "... failed!" + +echo +echo "=== socket Unix agent ===" +echo 'both +socket +Unix +'"$tmp.fifo" | $sudo ./Install -e >$tmp.out 2>&1 +_filter <$tmp.out +pminfo -v sample || echo "... failed!" +echo 'both +socket +Unix +'"$tmp.fifo" | $sudo ./Install -e >$tmp.out 2>&1 +_filter <$tmp.out +pminfo -v sample || echo "... failed!" + +$sudo ./Remove >$tmp.out 2>&1 +_filter_rem <$tmp.out +_check_pmda_gone $iam + +status=0 +exit |