diff options
Diffstat (limited to 'qa/565')
-rwxr-xr-x | qa/565 | 137 |
1 files changed, 137 insertions, 0 deletions
@@ -0,0 +1,137 @@ +#! /bin/sh +# PCP QA Test No. 565 +# Install/Remove for sendmail PMDA +# +# 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 + +rm -f $seq.out +case $PCP_PLATFORM +in + irix) + ln $seq.irix $seq.out || exit 1 + ;; + linux|darwin|solaris) + # same output for Linux, Mac OS X and OpenSolaris + if [ $PCP_VER -lt 3600 ] + then + ln $seq.linux $seq.out || exit 1 + else + ln $seq.out.2 $seq.out || exit 1 + fi + ;; + *) + _notrun "Need qualified output for $PCP_PLATFORM" + ;; +esac + +status=1 # failure is the default! +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 + if $install_on_cleanup + then + ( cd $PCP_PMDAS_DIR/sendmail; $sudo ./Install </dev/null >/dev/null 2>&1 ) + else + ( cd $PCP_PMDAS_DIR/sendmail; $sudo ./Remove </dev/null >/dev/null 2>&1 ) + fi + done_clean=true + fi + exit $status +} + +install_on_cleanup=false +pminfo sendmail >/dev/null 2>&1 && install_on_cleanup=true + +trap "_cleanup" 0 1 2 3 15 + +_filter() +{ + sed \ + -e 's/.* \(hash table entries\)/ NNN \1/' \ + -e 's/.* \(non-leaf nodes\)/ NNN \1/' \ + -e 's/.* \(leaf nodes\)/ NNN \1/' \ + -e 's/.* \(bytes of symbol table\)/ NNN \1/' \ + -e 's/[0-9][0-9]* warnings, //' \ + -e 's/metrics and [0-9][0-9]*/metrics and N/' \ + -e '/^sendmail\..* No value(s) available/d' \ + -e "/make: Nothing to be done for .install./d" \ + -e '/^Installing .mchart view*/d' \ + -e '/Installing files \.\.\./d' \ + -e '/Removing files \.\.\./d' +} + +# real QA test starts here +home=$PCP_PMDAS_DIR +iam=sendmail +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 + +if [ -f Makefile ] ; then + if $sudo make clobber >$tmp.out 2>&1 + then + : + else + cat $tmp.out + echo "Arrgh, make clobber failed" + exit + fi + + if $sudo make >$tmp.out 2>&1 + then + : + else + cat $tmp.out + echo "Arrgh, make failed" + exit + fi +fi + +echo +echo "=== default $iam agent installation ===" +$sudo ./Remove >$tmp.out 2>&1 +$sudo ./Install </dev/null >>$tmp.out 2>&1 + +# cp $tmp.out $here/$seq.full + +_filter <$tmp.out + +echo +echo "=== validate pmns ===" +pminfo $iam + +echo +echo "=== remove $iam agent ===" +$sudo ./Remove >$tmp.out 2>&1 +_filter <$tmp.out + +status=0 +exit |