summaryrefslogtreecommitdiff
path: root/qa/269
diff options
context:
space:
mode:
Diffstat (limited to 'qa/269')
-rwxr-xr-xqa/269208
1 files changed, 208 insertions, 0 deletions
diff --git a/qa/269 b/qa/269
new file mode 100755
index 0000000..4c9a88f
--- /dev/null
+++ b/qa/269
@@ -0,0 +1,208 @@
+#! /bin/sh
+# PCP QA Test No. 269 (formerly 269, 406)
+# To test out wrapping for pmval
+#
+# 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
+
+signal=$PCP_BINADM_DIR/pmsignal
+status=1 # failure is the default!
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+rm -f $seq.full
+
+_reset()
+{
+ pmstore sample.control -1 > /dev/null
+ $sudo $signal -a -s HUP pmcd
+ _wait_for_pmcd
+}
+
+
+_check_wrap_off()
+{
+ tee -a $seq.full |\
+ $PCP_AWK_PROG -v expected=$tmp.expected -v debug=$debug -v tolerance=$tolerance -v num_samples=$num_samples -v mismatch_limit=$mismatch_limit '
+ BEGIN {
+ if (debug == "true")
+ debug=1;
+ else
+ debug = 0;
+ }
+ NF == 1 {
+ i++;
+ sts = getline val < expected;
+ if (debug)
+ print "Read expected value:", val;
+ if (sts < 0)
+ print "Error: error in reading expected value";
+ if (sts == 0)
+ print "Error: eof encountered in reading expected value";
+
+ if (i == 1) {
+ # ignore the first one
+ next;
+ }
+
+ if (debug)
+ print "Comparing:", val, $1
+ if (val == $1) {
+ if (debug) print "match";
+ }
+ else if ((val-tolerance) <= $1 && $1 <= (val+tolerance)) {
+ if (debug) print "match";
+ }
+ else if (val < 0) {
+ if ($1 == "?" ){
+ if (debug) print "match";
+ }
+ else {
+ print "Missing wrap !";
+ print "Got ", $1, " instead";
+ mismatch++;
+ }
+ }
+ else {
+ mismatch++;
+ if (debug || mismatch_limit==0)
+ print "mismatch: ", $1, val;
+ }
+ }
+ END {
+ if (i < num_samples) {
+ print "Did not process enough samples";
+ print "Processed:", i, "expected:", num_samples;
+ }
+ if (mismatch > mismatch_limit) {
+ print "Too many mismatches";
+ print "Number of mismatches = ", mismatch;
+ }
+ else {
+ print "Enough Matched ok";
+ }
+ }
+'
+}
+
+
+
+_check_wrap_on()
+{
+ tee -a $seq.full |\
+ $PCP_AWK_PROG -v expected=$tmp.expected -v debug=$debug -v tolerance=$tolerance -v num_samples=$num_samples -v mismatch_limit=$mismatch_limit '
+ BEGIN {
+ if (debug == "true")
+ debug=1;
+ else
+ debug = 0;
+ # just use 1st value
+ sts = getline val < expected;
+ if (debug)
+ print "Read expected value:", val;
+ if (sts < 0)
+ print "Error: error in reading expected value";
+ if (sts == 0)
+ print "Error: eof encountered in reading expected value";
+ }
+ NF == 1 {
+ i++;
+ if (i == 1) {
+ # ignore the first one
+ next;
+ }
+ if (debug)
+ print "Comparing:", val, $1
+ if (val == $1) {
+ if (debug) print "match";
+ }
+ else if ((val-tolerance) <= $1 && $1 <= (val+tolerance)) {
+ if (debug) print "match";
+ }
+ else if ($1 == "?" ){
+ print "Error: no wrapping allowed";
+ mismatch++;
+ }
+ else {
+ mismatch++;
+ if (debug || mismatch_limit == 0)
+ print "mismatch: ", $1, val;
+ }
+ }
+ END {
+ if (i < num_samples) {
+ print "Did not process enough samples";
+ print "Processed:", i, "expected:", num_samples;
+ }
+ if (mismatch > mismatch_limit) {
+ print "Too many mismatches";
+ print "Number of mismatches = ", mismatch;
+ }
+ else {
+ print "Enough Matched ok";
+ }
+ }
+'
+}
+
+_test_pmval()
+{
+ _metric=$1
+ pmval -s$num_samples sample.wrap.$_metric |
+ sed -e 's/!/?/'
+}
+
+_wrap_off()
+{
+ unset PCP_COUNTER_WRAP
+ echo "--- Wrapping OFF ---"
+}
+
+_wrap_on()
+{
+ PCP_COUNTER_WRAP=
+ export PCP_COUNTER_WRAP
+ echo "--- Wrapping ON ---"
+}
+
+# real QA test starts here
+
+debug=false
+num_samples=10
+tolerance="0.15e+09" # implies error of about 0.15 second
+mismatch_limit=1 # allow 1 mismatch
+
+# src/wrap_int -n $num_samples >$tmp.expected
+cat << 'End-of-File' >$tmp.expected
+1.074e+09
+-3.221e+09
+1.074e+09
+1.074e+09
+1.074e+09
+-3.221e+09
+1.074e+09
+1.074e+09
+1.074e+09
+-3.221e+09
+End-of-File
+
+metric="long"
+echo "--- Testing pmval ---"
+echo "--- Testing pmval ---" >> $seq.full
+_reset
+_wrap_off
+_test_pmval $metric | _check_wrap_off
+_wrap_on
+echo "-----------------------" >> $seq.full
+_test_pmval $metric | _check_wrap_on
+
+# success, all done
+status=0
+exit