summaryrefslogtreecommitdiff
path: root/qa/257
diff options
context:
space:
mode:
Diffstat (limited to 'qa/257')
-rwxr-xr-xqa/257118
1 files changed, 118 insertions, 0 deletions
diff --git a/qa/257 b/qa/257
new file mode 100755
index 0000000..1544bbd
--- /dev/null
+++ b/qa/257
@@ -0,0 +1,118 @@
+#! /bin/sh
+# PCP QA Test No. 257
+# Tests out the api (uses torture_api)
+# when connecting to different hosts.
+# Initial motivation was to test the distributed PMNS.
+# This test is modelled on #112 and compares with 031.out
+#
+# 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.check
+. ./common.filter
+
+status=1 # failure is the default!
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+_filter()
+{
+ os=$1
+ echo "--- os = $os, version = 2 ---" >>$seq.full
+ cat - > $tmp.1
+
+ echo "--- unfiltered output ---" >>$seq.full
+ cat $tmp.1 >> $seq.full
+
+ _filter_torture_api <$tmp.1
+}
+
+_cmp()
+{
+ echo "differences relative to 031.out ..."
+
+ diff 031.out.${PCP_PLATFORM} $1
+}
+
+_do_tests()
+{
+ style=$1
+
+ case $style
+ in
+ -s1)
+ style_str="--- style $style (local PMNS)"
+ ;;
+ -s2)
+ style_str="--- style $style (distributed PMNS)"
+ ;;
+ esac
+
+ echo ""
+ echo "=== pmapi 32 v2, local version $style_str ===" | tee -a $seq.full
+ torture_api="src/torture_api"
+ echo "torture_api = $torture_api" >> $seq.full
+ $torture_api -v $style 2>&1 | _filter `uname -r` >$tmp.out
+ _cmp $tmp.out
+
+ echo ""
+ echo "=== pmapi 32 v2, pmcd 32 v2 $style_str ===" | tee -a $seq.full
+ torture_api="src/torture_api"
+ echo "torture_api = $torture_api" >> $seq.full
+ $torture_api -v $style -h $host_32_v2 2>&1 | _filter $host_32_v2_os >$tmp.out
+ _cmp $tmp.out
+
+ echo ""
+ echo "=== pmapi 32 v2, pmcd 64 v2 $style_str ===" | tee -a $seq.full
+ torture_api="src/torture_api"
+ echo "torture_api = $torture_api" >> $seq.full
+ $torture_api -v $style -h $host_64_v2 2>&1 | _filter $host_64_v2_os >$tmp.out
+ _cmp $tmp.out
+
+}
+
+# real QA test starts here
+rm -f $tmp.*
+rm -f $seq.full
+
+# try against variously configured hosts
+#
+# Need PCP_PLATFORM b/c the torture_api output is different
+# on different platforms at the moment.
+# => different metrics and the same metrics have different pmids
+#
+host_32_v2=`./getpmcdhosts -s $PCP_PLATFORM -b 32 -m "pmcd.version>2.0" -n 1 -a sample 2>&1`
+if [ $? -eq 1 ]; then
+ echo "$host_32_v2" >$seq.notrun
+ echo "$seq: [not run] `cat $seq.notrun`"
+ exit
+fi
+echo "host_32_v2 = $host_32_v2" >> $seq.full
+host_32_v2_os=`ssh -q pcpqa@$host_32_v2 uname -r`
+
+host_64_v2=`./getpmcdhosts -s $PCP_PLATFORM -b 64 -m "pmcd.version>2.0" -n 1 -a sample 2>&1`
+if [ $? -eq 1 ]; then
+ echo "$host_64_v2" >$seq.notrun
+ echo "$seq: [not run] `cat $seq.notrun`"
+ exit
+fi
+echo "host_64_v2 = $host_64_v2" >> $seq.full
+host_64_v2_os=`ssh -q pcpqa@$host_64_v2 uname -r`
+
+# make sure it's got the metrics we want for torture_api
+_check_metric sample.seconds $hosts_32_v2
+_check_metric sampledso.sysinfo $hosts_32_v2
+_check_metric sample.seconds $hosts_64_v2
+_check_metric sampledso.sysinfo $hosts_64_v2
+
+# uses libpcp2 and local PMNS
+_do_tests -s1
+
+# uses libpcp2 and possibly distributed PMNS
+_do_tests -s2
+
+status=0