#! /bin/sh # PCP QA Test No. 203 # pmlogextract, then pmlogextract again (nested mark record processing) # # 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 _filter() { pmdumplog $1 \ | $PCP_AWK_PROG ' // { mark++; next } /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\./ { rec++ } END { printf "%d records",rec if (mark) printf ", and %d marks",mark print "" }' pmdumplog $1 \ | $PCP_AWK_PROG >$1.stamp ' // { print $1 "-mark"; next } /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\./ { print $1 }' } # real QA test starts here rm -f $tmp.A.* echo "log mandatory on 20 msec sample.milliseconds" \ | pmlogger -s 4 $tmp.A >/dev/null 2>&1 echo echo log.A _filter $tmp.A rm -f $tmp.B.* echo "log mandatory on 25 msec sample.milliseconds" \ | pmlogger -s 5 $tmp.B >/dev/null 2>&1 echo echo log.B _filter $tmp.B rm -f $tmp.C.* pmlogextract $tmp.A $tmp.B $tmp.C echo echo "log.C == pmlogextract log.A log.B" _filter $tmp.C echo echo "mismatch timestamps" cat $tmp.A.stamp $tmp.B.stamp \ | comm -3 - $tmp.C.stamp \ | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9][0-9][0-9]/timestamp/g' echo echo "pmval [no interpolate] ..." rm -f $seq.full pmval -U $tmp.C sample.milliseconds 2>&1 \ | tee $seq.full \ | $PCP_AWK_PROG ' /suspended/ { mark++; next } /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\./ { rec++ } END { printf "%d records",rec if (mark) printf ", and %d marks",mark print "" }' rm -f $tmp.D.* echo "log mandatory on 20 msec sample.milliseconds" \ | pmlogger -s 6 $tmp.D >/dev/null 2>&1 echo echo log.D _filter $tmp.D rm -f $tmp.E.* pmlogextract $tmp.C $tmp.D $tmp.E echo echo "log.E == pmlogextract log.C log.D" _filter $tmp.E echo echo "mismatch timestamps" cat $tmp.C.stamp $tmp.D.stamp \ | comm -3 - $tmp.E.stamp \ | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9][0-9][0-9]/timestamp/g' echo echo "pmval [no interpolate] ..." pmval -U $tmp.E sample.milliseconds 2>&1 \ | tee -a $seq.full \ | $PCP_AWK_PROG ' /suspended/ { mark++; next } /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\./ { rec++ } END { printf "%d records",rec if (mark) printf ", and %d marks",mark print "" }'