#!/bin/sh # PCP QA Test No. 520 # # pmie - lots of expressions, checking pmie -d output and %v binding # - multihost cases, see also QA 514 # # Copyright (c) 2012 Ken McDonell. All Rights Reserved. # seq=`basename $0` echo "QA output created by $seq" # get standard filters . ./common.product . ./common.filter . ./common.check rm -f $seq.out if [ $PCP_VER -lt 3702 ] then ln $seq.out.1 $seq.out || exit 1 else if [ $PCP_VER -lt 3900 ] then ln $seq.out.2 $seq.out || exit 1 else ln $seq.out.3 $seq.out || exit 1 fi fi status=1 # failure is the default! $sudo rm -rf $tmp.* $seq.full trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 _filter() { sed \ -e 's/[A-Z][a-z][a-z] [A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DATE/' \ -e 's/DATE [12][0-9][0-9][0-9]/DATE/' \ -e '/evaluator exiting/s/pmie([0-9][0-9]*)/pmie(PID)/' \ -e '/Performance Co-Pilot Inference Engine/s/Version .*/Version .../' } _filter2() { $PCP_AWK_PROG ' $1 == "pmie:" { print; next } /failed: / { print; next } $1 == "bundle:" { skip=1 } skip == 1 { if ($1 == "Rule:") skip = 0 } skip == 1 { next } { print }' >$tmp.tmp tr ' =' '\012' <$tmp.tmp \ | grep '0x' \ | $PCP_AWK_PROG >$tmp.sed ' BEGIN { n = 0 } { if (seen[$1] == 1) next printf "s/%s/ADDR%03d/\n",$1,n n++ seen[$1] = 1 }' sed -f $tmp.sed <$tmp.tmp } cat <<'End-of-File' >$tmp.pmie hosts = ":vm00 :vm01 :vm02 :vm03"; some_host sampledso.drift $hosts > 0 -> print "some_host:" " @%h %v"; all_host 10 * sampledso.drift $hosts == sampledso.ulong.ten $hosts * sampledso.drift $hosts -> print "all_host:" " @%h %v"; 25%_host (hinv.physmem $hosts / (1024*1024)) > 512 -> print "25%_host:" " @%h %v"; min_host hinv.physmem $hosts == 239 * 1024 Kbyte -> print "min_host:" " @%h %v"; max_host sampledso.colour $hosts #'red' < max_host max_inst (sampledso.colour $hosts) -> print "max_host:" " @%h %v"; sum_host hinv.ncpu $hosts == hinv.ncpu :vm00 + hinv.ncpu :vm01 + hinv.ncpu :vm02 + hinv.ncpu :vm03 -> print "sum_host:" " @%h %v"; avg_host min_inst sampledso.bin $hosts == 100 -> print "avg_host:" " @%h [%i] %v"; count_host (some_inst sampledso.part_bin > 300) > 0 -> print "count_host:" " @%h [%i] %v"; End-of-File # real QA test starts here cat <$tmp.out 2>$tmp.err & f $tmp.pmie l r 10sec v End-of-File wait echo >>$seq.full echo "pmie PID $!" >>$seq.full echo >>$seq.full echo "=== pmie output ===" >>$seq.full cat $tmp.out >>$seq.full echo >>$seq.full echo "=== pmie errors ===" >>$seq.full cat $tmp.err >>$seq.full _filter2 <$tmp.err | _filter _filter <$tmp.out # success, all done status=0 exit