#! /bin/sh
# PCP QA Test No. 656
# checks functionality of pmdacifs in both DSO and daemon mode with Valgrind
# memory testing.
#
# Copyright (c) 2014-2015 Red Hat, Inc. All Rights Reserved.
seq=`basename $0`

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

_check_valgrind
echo "QA output created by $seq"

[ -f $PCP_PMDAS_DIR/cifs/pmdacifs ] || _notrun "cifs pmda not installed"
[ $PCP_PLATFORM = linux ] || _notrun "CIFS PMDA is Linux-specific (uses procfs)"

root=$tmp.root
export CIFS_STATSPATH=$root

# helper functions

_cleanup()
{
    $sudo rm -fr $root
    $sudo rm -fr $tmp.*.dir
    $sudo rm -f $tmp.*
    exit $status
}

iam=cifs
status=1 # failure is the default!
trap "_cleanup $iam" 0 1 2 3 15

$sudo rm -fr $root
$sudo rm -fr $tmp.*.dir
$sudo rm -f $tmp.* $seq.full
touch $here/$seq.full

# real QA test starts here
pmda=$PCP_PMDAS_DIR/cifs/pmda_cifs.so,cifs_init
pmns=$PCP_PMDAS_DIR/cifs/root
_make_helptext cifs

cd $here

for tgz in $here/cifs/cifs-root-*.tgz
do
    base=`basename $tgz`
    echo
    echo "=== Unpacking fake root ($base) === " | tee -a $here/$seq.full
    $sudo rm -fr $root
    mkdir $root || _fail "root in use when processing $base"
    cd $root
    tar xzf $tgz
    cd $here

    echo
    echo "=== Valgrind check cifs metrics for all filesystems ===" | tee -a $here/$seq.full
    _run_valgrind pminfo -L -K clear -K add,121,$pmda -dfmtT -n $pmns cifs
done

status=0
exit
