Merge branch 'master' of git://git.pcp.io/pcp into qt
[pcp.git] / qa / 515
blob212870c496574d1d3007a6c0006dda68b83f30f7
1 #!/bin/sh
2 # PCP QA Test No. 515
3 # pmie rising/falling test
5 # Copyright (c) 2012 Ken McDonell. All Rights Reserved.
7 # Based on bug report http://oss.sgi.com/bugzilla/show_bug.cgi?id=936
8 # from azzurrow@gmail.com
11 seq=`basename $0`
12 echo "QA output created by $seq"
14 # get standard environment, filters and checks
15 . ./common.product
16 . ./common.filter
17 . ./common.check
19 status=1 # failure is the default!
20 $sudo rm -rf $tmp.* $seq.full
21 trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
23 _filter_err()
25 sed \
26 -e 's/.*Info: evaluator exiting/pmie: note - evaluator exiting/g'
29 _filter()
31 _filter_pmie_log
34 cat <<'End-of-File' >$tmp.rules
35 some_inst pmcd.control.register > 0 -> print "some_inst:" " control[%i]=%v";
36 some_inst match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "some_inst match_inst:" " control[%i]=%v";
37 some_inst rising pmcd.control.register > 0 -> print "some_inst rising:" " control[%i]=%v";
38 some_inst rising match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "some_inst rising match_inst:" " control[%i]=%v";
39 some_inst match_inst "^1[0-5]\$" rising pmcd.control.register > 0 -> print "some_inst match_inst rising:" " control[%i]=%v";
40 some_inst falling pmcd.control.register > 0 -> print "some_inst falling:" " control[%i]=%v";
41 some_inst falling match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "some_inst falling match_inst:" " control[%i]=%v";
42 some_inst match_inst "^1[0-5]\$" falling pmcd.control.register > 0 -> print "some_inst match_inst falling:" " control[%i]=%v";
43 rising some_inst pmcd.control.register > 0 -> print "rising some_inst:" " control[%i]=%v";
44 rising some_inst match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "rising some_inst match_inst:" " control[%i]=%v";
45 falling some_inst pmcd.control.register > 0 -> print "falling some_inst:" " control[%i]=%v";
46 falling some_inst match_inst "^1[0-5]\$" pmcd.control.register > 0 -> print "falling some_inst match_inst:" " control[%i]=%v";
47 End-of-File
49 pmstore pmcd.control.register 0 >>$seq.full
51 # real QA test starts here
53 # duration has to be longer than the sum of the sleep's below
54 # and sample frequency has to be small enough to ensure several evaluations
55 # within each sleep period
57 #pmie -v -e -c $tmp.rules >$tmp.out 2>$tmp.err -t 0.4sec -T 10sec &
58 pmie -c $tmp.rules >$tmp.out 2>$tmp.err -t 0.4sec -T 10sec &
60 sleep 2
61 pmstore pmcd.control.register 1 >>$seq.full
62 sleep 2
63 pmstore pmcd.control.register 0 >>$seq.full
64 sleep 2
65 pmstore -i 8,9,10,11 pmcd.control.register 4 >>$seq.full
66 sleep 2
67 pmstore pmcd.control.register 0 >>$seq.full
68 wait
70 echo "=== stderr ===" | tee -a $seq.full
71 cat $tmp.err >>$seq.full
72 _filter_err <$tmp.err
73 echo "=== stdout ===" | tee -a $seq.full
74 cat $tmp.out >>$seq.full
75 _filter <$tmp.out \
76 | LC_COLLATE=POSIX sort \
77 | uniq -c \
78 | sed -e 's/ [4567] DATE/4-7 DATE/' -e 's/ */ /g'
80 # success, all done
81 status=0
82 exit