diff options
Diffstat (limited to 'qa/162')
-rwxr-xr-x | qa/162 | 120 |
1 files changed, 120 insertions, 0 deletions
@@ -0,0 +1,120 @@ +#! /bin/sh +# PCP QA Test No. 162 +# namespace only Install/Remove for pmdas +# +# this is less important for PCP 2.0 than it was for PCP 1.x, but we +# need to make sure the functionality still works, e.g. upgrade a +# collector to PCP 2.0, but want to monitor from a PCP 1.x system +# +# Note: expect some "Cannot create" errors from the installation +# of the pmchart view(s) ... we do not run Install/Remove as root +# in this test +# +# See also 600. This version is for the PMDAs in pcp_opensrc. +# +# 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 +[ $? -eq 0 ] || _notrun "perl PCP::PMDA module not installed" + +trap "rm -rf $tmp; exit" 0 1 2 3 15 + +# +# Get rid of some new sample metrics which +# would make the test vary. +# +_filter() +{ + sed \ + -e '/sample\.dynamic\.meta/d' \ + -e '/sample\.datasize/d' \ + -e '/sample\.darkness/d' \ + +} + + +_filter_ins() +{ + 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/ *- Permission denied/\ +Permission denied/' +} + + +# all of the ones we ship as part of the PCP product +# +PMDALIST=' +cisco +mailq +news +sample +sendmail +simple +summary +trace +trivial +txmon' + +# real QA test starts here +unset ROOT MAKEFLAGS +mkdir $tmp + +cat >>$tmp/root.orig <<End-of-File +root { +} +End-of-File +cp $tmp/root.orig $tmp/root + +for pmda in $PMDALIST +do + instdir=$PCP_PMDAS_DIR/$pmda + echo + echo "=== Install -n for $pmda ===" + if [ -f $instdir/Install ] + then + cd $instdir + $sudo ./Install -e -n $tmp/root -N </dev/null 2>&1 | _filter_ins + pminfo -n $tmp/root $pmda | _filter | LC_COLLATE=POSIX sort + else + echo "Error: $instdir/Install does not exist" + fi +done + +echo +echo 'Removals ... expect "Unknown metric name" errors at the end of each' +echo 'operation as the PMNS should have been culled' +for pmda in $PMDALIST +do + instdir=$PCP_PMDAS_DIR/$pmda + echo + echo "=== Remove -n for $pmda ===" + if [ -f $instdir/Remove ] + then + cd $instdir + $sudo ./Remove -n $tmp/root -N + pminfo -n $tmp/root $pmda + else + echo "Error: $instdir/Install does not exist" + fi + +done + +echo +echo "=== Check final state of root ===" +echo "(expect no diffs between the initial and final PMNS)" +diff -c $tmp/root.orig $tmp/root + +exit 0 |