summaryrefslogtreecommitdiff
path: root/qa/364
diff options
context:
space:
mode:
Diffstat (limited to 'qa/364')
-rwxr-xr-xqa/364122
1 files changed, 122 insertions, 0 deletions
diff --git a/qa/364 b/qa/364
new file mode 100755
index 0000000..14f780b
--- /dev/null
+++ b/qa/364
@@ -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