diff options
Diffstat (limited to 'qa/515')
-rwxr-xr-x | qa/515 | 81 |
1 files changed, 81 insertions, 0 deletions
@@ -0,0 +1,81 @@ +#!/bin/sh +# PCP QA Test No. 515 +# pmie rising/falling test +# +# Copyright (c) 2012 Ken McDonell. All Rights Reserved. +# +# Based on bug report http://oss.sgi.com/bugzilla/show_bug.cgi?id=936 +# from azzurrow@gmail.com +# + +seq=`basename $0` +echo "QA output created by $seq" + +# get standard environment, filters and checks +. ./common.product +. ./common.filter +. ./common.check + +status=1 # failure is the default! +$sudo rm -rf $tmp.* $seq.full +trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 + +_filter_err() +{ + sed \ + -e 's/.*Info: evaluator exiting/pmie: note - evaluator exiting/g' +} + +_filter() +{ + _filter_pmie_log +} + +cat <<'End-of-File' >$tmp.rules +some_inst pmcd.control.register > 0 -> print "some_inst:" " control[%i]=%v"; +some_inst match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "some_inst match_inst:" " control[%i]=%v"; +some_inst rising pmcd.control.register > 0 -> print "some_inst rising:" " control[%i]=%v"; +some_inst rising match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "some_inst rising match_inst:" " control[%i]=%v"; +some_inst match_inst "^1[0-5]\$" rising pmcd.control.register > 0 -> print "some_inst match_inst rising:" " control[%i]=%v"; +some_inst falling pmcd.control.register > 0 -> print "some_inst falling:" " control[%i]=%v"; +some_inst falling match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "some_inst falling match_inst:" " control[%i]=%v"; +some_inst match_inst "^1[0-5]\$" falling pmcd.control.register > 0 -> print "some_inst match_inst falling:" " control[%i]=%v"; +rising some_inst pmcd.control.register > 0 -> print "rising some_inst:" " control[%i]=%v"; +rising some_inst match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "rising some_inst match_inst:" " control[%i]=%v"; +falling some_inst pmcd.control.register > 0 -> print "falling some_inst:" " control[%i]=%v"; +falling some_inst match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "falling some_inst match_inst:" " control[%i]=%v"; +End-of-File + +pmstore pmcd.control.register 0 >>$seq.full + +# real QA test starts here + +# duration has to be longer than the sum of the sleep's below +# and sample frequency has to be small enough to ensure several evaluations +# within each sleep period +# +pmie -c $tmp.rules >$tmp.out 2>$tmp.err -t 0.4sec -T 10sec & + +sleep 2 +pmstore pmcd.control.register 1 >>$seq.full +sleep 2 +pmstore pmcd.control.register 0 >>$seq.full +sleep 2 +pmstore -i 8,9,10,11 pmcd.control.register 4 >>$seq.full +sleep 2 +pmstore pmcd.control.register 0 >>$seq.full +wait + +echo "=== stderr ===" | tee -a $seq.full +cat $tmp.err >>$seq.full +_filter_err <$tmp.err +echo "=== stdout ===" | tee -a $seq.full +cat $tmp.out >>$seq.full +_filter <$tmp.out \ +| LC_COLLATE=POSIX sort \ +| uniq -c \ +| sed -e 's/ [456] DATE/4-6 DATE/' + +# success, all done +status=0 +exit |