summaryrefslogtreecommitdiff
path: root/qa/129
diff options
context:
space:
mode:
Diffstat (limited to 'qa/129')
-rwxr-xr-xqa/129124
1 files changed, 124 insertions, 0 deletions
diff --git a/qa/129 b/qa/129
new file mode 100755
index 0000000..72c72fc
--- /dev/null
+++ b/qa/129
@@ -0,0 +1,124 @@
+#! /bin/sh
+# PCP QA Test No. 129
+# pmlogreduce rate conversion
+#
+# Copyright (c) 2002 Silicon Graphics, Inc. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard environment, filters and checks
+. ./common.product
+. ./common.filter
+. ./common.check
+
+status=0 # success is the default!
+$sudo rm -rf $tmp.*
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+rm -f $seq.full
+
+_filter()
+{
+ sed \
+ -e '/^ *$/d' \
+ -e 's/ */ /g' \
+ -e 's/ $//' \
+ -e '/End of PCP archive log/d' \
+ | $PCP_AWK_PROG '
+BEGIN { skip = 1 }
+$1 == "interval:" { skip = 0; next }
+skip == 0 { print }'
+}
+
+_fix_e_fmt()
+{
+ sed \
+ -e 's/\([0-9]\)E/\1 E /' \
+ | $PCP_AWK_PROG '
+ { printf "%s",$1
+ for (i = 2; i <= NF; i++) {
+ if ($(i+1) == "E") {
+ b = $(i+2)
+ s = 1.0
+ while (b < 0) {
+ s /= 10
+ b++
+ }
+ while (b > 0) {
+ s *= 10
+ b--
+ }
+ $i *= s
+ printf " %s",$i
+ i += 2
+ }
+ else
+ printf " %s",$i
+ }
+ print ""
+ }'
+}
+
+_do()
+{
+ $PCP_ECHO_PROG $PCP_ECHO_N "$1""$PCP_ECHO_C"
+ echo >>$seq.full
+ echo "=== $1 orig ===" >>$seq.full
+ pmval -z -O 1m -A 15m -t 15m -a src/kenj-pc-1 $1 2>$tmp.orig.err \
+ | tee -a $seq.full \
+ | _fix_e_fmt \
+ | _filter >$tmp.orig
+ echo "--- stderr ---" >>$seq.full
+ cat $tmp.orig.err >>$seq.full
+ echo "--- filtered ---" >>$seq.full
+ cat $tmp.orig >>$seq.full
+
+ echo "=== $1 reduce ===" >>$seq.full
+ pmval -z -O 15m -A 15m -t 15m -a $tmp $1 2>$tmp.reduce.err \
+ | tee -a $seq.full \
+ | _fix_e_fmt \
+ | _filter >$tmp.reduce
+ echo "--- stderr ---" >>$seq.full
+ cat $tmp.reduce.err >>$seq.full
+ echo "--- filtered ---" >>$seq.full
+ cat $tmp.reduce >>$seq.full
+
+ join -a 1 -a 2 -e "?" $tmp.orig $tmp.reduce >$tmp.join
+
+# cat $tmp.join
+
+ $PCP_AWK_PROG <$tmp.join >$tmp.chk '
+NF != 3 { if (NR > 1) print
+ next
+ }
+$2 == "?" { print; next }
+$3 == "?" { print; next }
+ { if (0.99*$2 <= $3 && $3 <= 1.01*$2) next }
+ { print }'
+
+ if [ -s $tmp.chk ]
+ then
+ $PCP_ECHO_PROG " mismatches ..."
+ echo "--- chk ---" >>$seq.full
+ cat $tmp.chk >>$seq.full
+ cat $tmp.orig.err
+ cat $tmp.reduce.err
+ diff -u $tmp.orig $tmp.reduce
+ else
+ $PCP_ECHO_PROG " OK"
+ fi
+}
+
+# real QA test starts here
+pmlogreduce -A 15m -t 15m -D appl0,appl1,appl2 src/kenj-pc-1 $tmp 2>>$seq.full
+
+for m in \
+ disk.all.total kernel.all.cpu.idle \
+ disk.dev.total kernel.percpu.cpu.user
+do
+ _do $m
+done
+
+