summaryrefslogtreecommitdiff
path: root/qa/034
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
commit47e6e7c84f008a53061e661f31ae96629bc694ef (patch)
tree648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/034
downloadpcp-47e6e7c84f008a53061e661f31ae96629bc694ef.tar.gz
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/034')
-rwxr-xr-xqa/03472
1 files changed, 72 insertions, 0 deletions
diff --git a/qa/034 b/qa/034
new file mode 100755
index 0000000..b63dbe4
--- /dev/null
+++ b/qa/034
@@ -0,0 +1,72 @@
+#! /bin/sh
+# PCP QA Test No. 034
+# pmlogger with different logging rates
+#
+# 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
+
+trap "rm -f $tmp.*; exit" 0 1 2 3 15
+
+# real QA test starts here
+#
+
+# Logs are built for 70 samples (-s70) (see Makefile)
+# The sample metric rates are 100msec, 500msec, 900msec
+# Theoretically,....
+# This means that (x + x/5 + x/9 = 70) for integral x.
+# => 59x = 70 * 45
+# => x ~= 53.39
+# But x is integral
+# So, x = 54, x/5 = 10, x/9 = 6 (54 + 10 + 6 = 70)
+#
+# Note below that n[i] is not incremented on its 1st occurrence
+# => expect values of 53, 9, 5
+
+for arch in src/bar src/mv-bar src/noti-bar
+do
+ echo
+ echo "=== $arch ==="
+ pmdumplog $arch \
+ | sed -e 's/:/ /g' \
+ | $PCP_AWK_PROG '
+ /^[0-9]/ { print $3,$NF }' \
+ | $PCP_AWK_PROG '
+ { if (l[$2] != "") {
+ delta = $1 - l[$2];
+ if (delta < 0)
+ delta += 60;
+ # print $2,delta
+ t[$2] += delta
+ n[$2]++
+ }
+ l[$2] = $1
+ }
+ END { for (i in n) {
+ printf "%d msec requested: ",i
+ if (n[i] != 0)
+ ave = 1000*t[i]/n[i]
+ else
+ ave = 0
+ if (i == 100 && 51 <= n[i] && n[i] <= 54)
+ printf "no. of samples within range, "
+ else if (i == 500 && 9 <= n[i] && n[i] <= 11)
+ printf "no. of samples within range, "
+ else if (i == 900 && 4 <= n[i] && n[i] <= 6)
+ printf "no. of samples within range, "
+ else
+ printf "no. of samples (%d) unexpected, ",n[i]
+ if (0.9 * i <= ave && ave <= 1.1 * i)
+ printf "avg within 10%% of requested delay\n"
+ else
+ printf "avg (%.2f msec) outside 10%% of requested delay\n",1000*t[i]/n[i]
+ }
+ }' \
+ | LC_COLLATE=POSIX sort
+done