diff options
Diffstat (limited to 'qa/364')
-rwxr-xr-x | qa/364 | 122 |
1 files changed, 122 insertions, 0 deletions
@@ -0,0 +1,122 @@ +#!/bin/sh +# PCP QA Test No. 364 +# pmlogconf metric accessibility +# +# Copyright (c) 2010 Ken McDonell. All Rights Reserved. +# + +seq=`basename $0` +echo "QA output created by $seq" + +# get standard environment, filters and checks +. ./common.product +. ./common.filter +. ./common.check + +# see if unix domain sockets are available (permissions) +_get_libpcp_config +target="-h localhost" +$unix_domain_sockets && target="-h unix:" + +status=0 # success is the default! +$sudo rm -rf $tmp.* $seq.full +trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 + +_filter_solaris() +{ + if [ $PCP_PLATFORM != solaris ] + then + cat + else + sed \ + -e '/disk.dev.avactive .* Unknown metric name/d' \ + -e '/network.icmp.* Unknown metric name/d' \ + -e '/network.igmp.* Unknown metric name/d' \ + -e '/network.ip.* Unknown metric name/d' \ + -e '/network.tcp.* Unknown metric name/d' \ + -e '/network.udp.* Unknown metric name/d' \ + -e '/filesys.* Unknown metric name/d' \ + -e '/nfs.* Unknown metric name/d' \ + -e '/rpc.* Unknown metric name/d' \ + -e '/swap .* Unknown metric name/d' \ + -e '/swap.pages.* Unknown metric name/d' \ + -e '/swapdev .* Unknown metric name/d' \ + # solaris + fi +} + +_filter_darwin() +{ + if [ $PCP_PLATFORM != darwin ] + then + cat + else + sed \ + -e '/disk.dev.avactive .* Unknown metric name/d' \ + -e '/network.icmp.* Unknown metric name/d' \ + -e '/network.igmp.* Unknown metric name/d' \ + -e '/network.ip.* Unknown metric name/d' \ + -e '/network.tcp.* Unknown metric name/d' \ + -e '/network.udp.* Unknown metric name/d' \ + -e '/nfs.* Unknown metric name/d' \ + -e '/swap .* Unknown metric name/d' \ + -e '/swap.pages.* Unknown metric name/d' \ + -e '/swapdev .* Unknown metric name/d' \ + # darwin + fi +} + +_filter_irix() +{ + # these are always-on in older oss versions of pcp + sed \ + -e '/disk.dev.avg_disk.active .* metric name/d' \ + -e '/disk.all.avg_disk.active .* metric name/d' \ + -e '/disk.dev.bytes .* Unknown metric name/d' \ + -e '/disk.all.bytes .* Unknown metric name/d' \ + -e '/network.igmp .* Unknown metric name/d' \ + -e '/swap.in .* Metric not supported/d' \ + -e '/swap.out .* Metric not supported/d' +} + +# remove all known platform-dependencies from output +# (ideally leaving any genuine failures behind) +# +_filter() +{ + _filter_irix | _filter_solaris | _filter_darwin +} + +# real QA test starts here +pmlogconf $tmp.conf >$tmp.out 2>&1 +cat $tmp.out >$seq.full + +sed -e 's/:n:/:y:/' <$tmp.conf >$tmp.tmp +mv $tmp.tmp $tmp.conf + +yes '' | pmlogconf $tmp.conf >$tmp.out +( echo && echo "== TMP.OUT" ) >>$seq.full +cat $tmp.out >>$seq.full +( echo && echo "== TMP.CONF") >>$seq.full +cat $tmp.conf >>$seq.full +( echo && echo "== FILTERED") >>$seq.full + +sed -n <$tmp.conf \ + -e '/^[ ]/{ +s/^[ ]*// +s/[ ].*// +/^#/d +p +}' \ +| LC_COLLATE=POSIX sort \ +| uniq \ +| tee -a $seq.full \ +| xargs pmprobe $target \ +| _filter \ +| $PCP_AWK_PROG ' +$2 >= 0 { next } + { print }' + +echo Silence is golden +# success, all done +exit |