#!/bin/sh
# PCP QA Test No. 488
# pmlogrewrite - delete cases
#
# Copyright (c) 2011 Ken McDonell.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check

which pmlogrewrite >/dev/null 2>&1 || _notrun "pmlogrewrite not installed"

status=0	# success is the default!
$sudo rm -rf $tmp.* $seq.full
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15

_filter()
{
    sed \
	-e "s;$tmp;TMP;g" \
	-e "s/^\([+-][+-][+-] TMP\...t*\).*/\1/" \
	-e '/pmResult dump/s/from .* numpmid/... numpmid/'
}

_cmp()
{
    pminfo -a $1 -m >$tmp.in
    pminfo -a $2 -m >$tmp.out
    echo "--- pmns diffs ---"
    diff -u $tmp.in $tmp.out | _filter
    pmdumplog -z -a $1 | tee -a $seq.full >$tmp.in
    pmdumplog -z -a $2 | tee -a $seq.full >$tmp.out
    echo "--- pmdumplog diffs ---"
    diff -u $tmp.in $tmp.out | _filter
}

# real QA test starts here
sed -e '/^#/d' <<End-of-File | while read arch_args spec
# archive[|arg1[|arg2[|...]]]	spec
# metric delete
archives/src-rattle		metric hinv.ncpu { delete }
archives/src-rattle		metric hinv.ncpu { delete } metric hinv.ndisk { delete }
archives/src-rattle		metric 1.*.* { delete }
archives/ace_v2		metric 40.*.* { delete } metric 1.25.* { delete }
archives/mirage		indom 29.3 { iname "m-00" -> delete inst 33 -> delete }
End-of-File
do
    echo | tee -a $seq.full
    echo "$spec" >$tmp.config
    echo "=== `cat $tmp.config` ===" | tee -a $seq.full
    rm -f $tmp.new.*
    pmlogrewrite -w -c $tmp.config `echo $arch_args | sed -e 's/|/ /g'` $tmp.new 2>&1 | _filter
    if [ -f $tmp.new.0 ]
    then
	_cmp `echo $arch_args | sed -e 's/|.*//'` $tmp.new
    fi
done

# success, all done
exit
