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

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!
files1="$PCP_TMP_DIR/mmv/test-$$ $PCP_TMP_DIR/mmv/notest-$$ $PCP_TMP_DIR/mmv/simple-$$"
files2="$PCP_TMP_DIR/mmv/test2-$$ $PCP_TMP_DIR/mmv/notest2-$$ $PCP_TMP_DIR/mmv/simple2-$$"
culldir=false

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

$sudo rm -rf $tmp.* $seq.full $files1 $files2
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-$$,test-PID,g" \
	-e "s,notest-$$,notest-PID,g" \
	-e "s,simple-$$,simple-PID,g" \
	-e "s,test2-$$,test2-PID,g" \
	-e "s,notest2-$$,notest2-PID,g" \
	-e "s,simple2-$$,simple2-PID,g" \
	-e "s,^Process.*= $pid1,Process    = PID,g" \
	-e "s,^Process.*= $pid2,Process    = PID,g" \
	-e "s,^Process.*= $pid3,Process    = PID,g" \
	-e "s,^Process.*= $pid4,Process    = PID,g" \
	-e "s,^Process.*= $pid5,Process    = PID,g" \
	-e "s,^Process.*= $pid6,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" \

}

echo $$ > $seq.full

src/mmv_genstats test-$$ &
pid1=$!
src/mmv_nostats notest-$$ &
pid2=$!
src/mmv_simple simple-$$ &
pid3=$!
src/mmv2_genstats test2-$$ &
pid4=$!
src/mmv2_nostats notest2-$$ &
pid5=$!
src/mmv2_simple simple2-$$ &
pid6=$!
wait

echo && echo == Version 1 interfaces
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/test-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/notest-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/simple-$$ | _filter_mmvdump

echo && echo == Version 2 interfaces
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/test-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/notest-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/simple2-$$ | _filter_mmvdump

status=0
exit
