diff options
Diffstat (limited to 'qa/1044')
-rwxr-xr-x | qa/1044 | 141 |
1 files changed, 141 insertions, 0 deletions
@@ -0,0 +1,141 @@ +#! /bin/sh +# PCP QA Test No. 1044 (formerly 525) +# exercises pmieconf cmd line +# +# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved. +# + +seq=`basename $0` +echo "QA output created by $seq" + +# get standard environment, filters and checks +. ./common.product +. ./common.filter +. ./common.check + +which pmieconf >/dev/null 2>&1 || _notrun "No pmieconf binary installed" + +status=1 # failure is the default! + +_cleanup() +{ + [ -f $tmp.save ] && cp $tmp.save $HOME/.pcp/pmie/config.pmie + rm -f $tmp.* + exit $status +} + +filterpmieerr() +{ + sed -e ' +/^pmieconf:.* already been used,/ { + s/"[^"]*"/"SOME.RULE"/ +} +/, line [0-9]*\./ { + s/, line [0-9]*\./, line LINENUMBER./ + s/"\.\/pconf\/.*",/"\.\/pconf\/SOME\/RULE",/ +}' +} + +trap "_cleanup" 0 1 2 3 15 +# keep this to restore later in case its someones local pmie config file +[ -f $HOME/.pcp/pmie/config.pmie ] && cp $HOME/.pcp/pmie/config.pmie $tmp.save +rm -f $HOME/.pcp/pmie/config.pmie + +# real QA test starts here + +echo +echo "=== basic test - check that we get one rule..." +pmieconf -r ./pconf list memory + +echo +echo "=== basic test - check that we get one rule..." +pmieconf -r ./pconf l memory.exhausted + +echo +echo "=== check for non-existant rules location" +pmieconf -r /no/such/file -v 5 all + +rm -f $seq.full +echo +echo "=== check no fatal errors when creating config.pmie" +pmieconf -r ./pconf -f $seq.full -F >/dev/null 2>$tmp.out +sed -e "s/$$/PID/g" $tmp.out +wc -l <$seq.full | sed -e 's/ //g' # check the file is what we expect +head -2 $seq.full # check the initial lines generated OK + +echo +echo "=== check generated config.pmie is good pmie syntax" +# Mac OS X issue ... swap.pagesout is not supported, so we get +# pmie: metric swap.pagesout not in namespace for host Colleens-iMac.local +# pmLookupName failed: Unknown metric name +# +# Solaris issue ... some filesys.* metrics and swap.pagesout not +# supported, so similar problem there +# +# FreeBSD issue ... some filesys.* metrics not supported +# pmie: metric filesys.used not in namespace for host vm06.localdomain +# +pmie -C $seq.full >$tmp.out 2>&1 +sts=$? + +if [ $PCP_PLATFORM = darwin ] +then + $PCP_AWK_PROG <$tmp.out ' +BEGIN { skip = 0 } +/pmie: metric swap.pagesout not in namespace/ { skip = 2 } +skip > 0 { skip--; next } + { print }' +elif [ $PCP_PLATFORM = solaris ] +then + $PCP_AWK_PROG <$tmp.out ' +BEGIN { skip = 0 } +/pmie: metric filesys.used not in namespace/ { skip = 2 } +/pmie: metric filesys.capacity not in namespace/{ skip = 2 } +/pmie: metric swap.pagesout not in namespace/ { skip = 2 } +skip > 0 { skip--; next } + { print }' +elif [ $PCP_PLATFORM = freebsd ] +then + $PCP_AWK_PROG <$tmp.out ' +BEGIN { skip = 0 } +/pmie: metric filesys.used not in namespace/ { skip = 2 } +/pmie: metric filesys.capacity not in namespace/{ skip = 2 } +skip > 0 { skip--; next } + { print }' +else + cat $tmp.out +fi + +echo status=$sts + +cat > $tmp.input << EOF +list all +quit +EOF +echo +echo "=== check interactive similar to command line...." +pmieconf -r ./pconf list all > $tmp.cmdline +pmieconf -r ./pconf > $tmp.interact < $tmp.input +echo >> $tmp.interact +diff $tmp.cmdline $tmp.interact | sed -e "s,$HOME,HOME,g" + +echo +echo "=== check rules path & duplicate rule names (-r)..." +pmieconf -F -r ./pconf:./pconf 2>&1 | filterpmieerr +echo status=$? + +echo +echo "=== check rules path & duplicate rule names (env)..." +PMIECONF_PATH=./pconf:/no/such/rules:./pconf +export PMIECONF_PATH +pmieconf -F -r ./pconf:./pconf 2>&1 | filterpmieerr +echo status=$? + +echo +echo "=== check env variable gets used over default..." +pmieconf list all +echo status=$? + +# success, all done +status=0 +exit |