#! /bin/sh
# PCP QA Test No. 646
# Testing of libpcp_mmv functionality (ondisk format)
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
# Copyright (c) 2009-2010 Aconex.  All Rights Reserved.
#

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

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

status=0	# success is the default!
files="$PCP_TMP_DIR/mmv/test$$ $PCP_TMP_DIR/mmv/notest$$"
culldir=false

_cleanup()
{
    rm -f $tmp.*
    $sudo rm -f $files
    $culldir && $sudo rm -fr "$PCP_TMP_DIR/mmv"
}

$sudo rm -rf $tmp.* $files
trap "_cleanup; exit \$status" 0 1 2 3 15

# is a pre-existing mmv directory in place?  if so, write access needed
if [ -d "$PCP_TMP_DIR/mmv" ]
then
    [ -w "$PCP_TMP_DIR/mmv" ] || _notrun "Cannot write to $PCP_TMP_DIR/mmv"
else
    culldir=true
    $sudo mkdir -p "$PCP_TMP_DIR/mmv"
    $sudo chown `whoami` "$PCP_TMP_DIR/mmv"    # local user - tmpdir writing
    $sudo chgrp $PCP_GROUP "$PCP_TMP_DIR/mmv"  # group pcp - pmdammv reading
fi

_filter_mmvdump()
{
    sed \
	-e "s,test$$,testPID,g" \
	-e "s,notest$$,notestPID,g" \
	-e "s,^Process.*= $pid1,Process    = PID,g" \
	-e "s,^Process.*= $pid2,Process    = PID,g" \
	-e "s,^Generated.*= [0-9][0-9]*,Generated  = TIMESTAMP,g" \
	-e 's/interval = [0-9][0-9]*/interval = TIME/' \
	-e 's/eggs"] = [0-9][0-9]* (value=[0-9][0-9]*/eggs"] = N (value=N/' \
	-e "s,^MMV file.*= $PCP_TMP_DIR,MMV file   = \$PCP_TMP_DIR,g" \

}

src/mmv_genstats test$$ &
pid1=$!
src/mmv_nostats notest$$ &
pid2=$!
wait
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/test$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/notest$$ | _filter_mmvdump

status=0
exit
