diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/034 | |
download | pcp-47e6e7c84f008a53061e661f31ae96629bc694ef.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/034')
-rwxr-xr-x | qa/034 | 72 |
1 files changed, 72 insertions, 0 deletions
@@ -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 |