#! /bin/sh # PCP QA Test No. 134 # $Revision: 2.11 $ # Check pmGetArchiveEnd for multi-volume logs # # Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved. # seq=`basename $0` seq=`basename $0` echo "QA output created by $seq" # get standard filters . ./common.product . ./common.filter tmp=/tmp/$$ trap "rm -f $tmp.*; exit" 0 1 2 3 15 # get standard filters . ./common.filter . ./common.check _do_ls() { $PCP_AWK_PROG ' /Cannot/ { print; next } { print $9,$5,"bytes" }' \ | sed -e "s;$tmp;MYLOG;" \ | $PCP_AWK_PROG ' $2 >= 170 && $2 <= 209 { print $1,"170-209",$3; next } $2 >= 210 && $2 <= 249 { print $1,"210-249",$3; next } $2 >= 250 && $2 <= 289 { print $1,"250-289",$3; next } $2 >= 290 && $2 <= 329 { print $1,"290-329",$3; next } $2 >= 330 && $2 <= 369 { print $1,"330-369",$3; next } { print }' } _do_time() { tstamp=`wc -l <$tmp.sed | sed -e 's/ *//g'` tstamp=`expr $tstamp - 2` sed >$tmp.tmp \ -e "s;$tmp;MYLOG;" \ -e 's/from host .*/from host LOCALHOST/' \ -e "/\"$logger_pid\"/s/$logger_pid/LOGGER_PID/g" \ -e '/pmcd.pmlogger.port/s/value .*/value PORT/' \ -e '/pmcd.pmlogger.host/s/value ".*/value "HOST"/' \ -e '/pmcd.pmlogger.archive/s/value ".*/value "PATH"/' sed -n <$tmp.tmp \ -e 's/.*\([0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9][0-9]\).*/\1/p' \ | LC_COLLATE=POSIX sort -u \ | while read time do if grep $time $tmp.sed >/dev/null then : else echo "s/$time/TIMESTAMP-$tstamp/g" >>$tmp.sed tstamp=`expr $tstamp + 1` fi done sed -f $tmp.sed $tmp.tmp \ | $PCP_AWK_PROG ' $1 ~ /TIMESTAMP/ && NF == 4 { print $1 " " $2 " OFFSET OFFSET"; next } { print }' } _do_metrics() { echo "Metrics in archive:" egrep 'sample|pmcd' \ | sed -e 's/.*(//' -e 's/).*//' -e 's/^/ /' } # real QA test starts here rm -f $tmp.* echo 's/ [A-Z][a-z][a-z] [A-Z][a-z][a-z] .. / month-day /g' >$tmp.sed echo 's/ [12][0-9][0-9][0-9]$/ year/' >>$tmp.sed pmlogger -L -c /dev/null -l $tmp.log $tmp & pid=$! _wait_for_pmlogger $pid $tmp.log echo echo "=== logger started, nothing logged ===" echo "=== logger started, nothing logged ===" >$seq.full ls -l $tmp.? 2>&1 | tee -a $seq.full | _do_ls pmdumplog -lt $tmp 2>&1 | tee -a $seq.full | _do_time pmdumplog $tmp | tee -a $seq.full | _do_metrics pmlc </dev/null echo echo "=== first volume, one result ===" echo "=== first volume, one result ===" >>$seq.full ls -l $tmp.? | tee -a $seq.full | _do_ls pmdumplog -lt $tmp | tee -a $seq.full | _do_time pmdumplog $tmp | tee -a $seq.full | _do_metrics pmlc <>$seq.full ls -l $tmp.? | tee -a $seq.full | _do_ls pmdumplog -lt $tmp | tee -a $seq.full | _do_time pmdumplog $tmp | tee -a $seq.full | _do_metrics pmlc </dev/null echo echo "=== second volume, one result ===" echo "=== second volume, one result ===" >>$seq.full ls -l $tmp.? | tee -a $seq.full | _do_ls pmdumplog -lt $tmp | tee -a $seq.full | _do_time pmdumplog $tmp | tee -a $seq.full | _do_metrics pmlc </dev/null echo echo "=== second volume, second + third result ===" echo "=== second volume, second + third result ===" >>$seq.full ls -l $tmp.? | tee -a $seq.full | _do_ls pmdumplog -lt $tmp | tee -a $seq.full | _do_time pmdumplog $tmp | tee -a $seq.full | _do_metrics kill -INT $pid wait echo echo "=== logger done ===" echo "=== logger done ===" >>$seq.full ls -l $tmp.? | tee -a $seq.full | _do_ls pmdumplog -lt $tmp | tee -a $seq.full | _do_time pmdumplog $tmp | tee -a $seq.full | _do_metrics exit 0