#!/bin/sh
# PCP QA Test No. 744
# Exercise the NVIDIA GPU PMDA, basic fetch testing.
#
# Copyright (c) 2014 Red Hat.
#

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

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

test -f $here/src/libnvidia-ml.$DSO_SUFFIX || \
	_notrun "No NVIDIA QA wrapper library is available"
test -f $PCP_LIB_DIR/libnvidia-ml.$DSO_SUFFIX && \
	_notrun "Conflicting system NVIDIA library found"
test -f $PCP_LIB32_DIR/libnvidia-ml.$DSO_SUFFIX && \
	_notrun "Conflicting 32-bit system NVIDIA library found"

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

_filter()
{
    sed -e 's/.* pminfo\(.*\) Info:/pminfo[PID] Info:/g'
}

pmns=$PCP_PMDAS_DIR/nvidia/root
pmda=$PCP_PMDAS_DIR/nvidia/pmda_nvidia,nvidia_init

if [ -f $PCP_PMDAS_DIR/nvidia/help.dir ]
then
    # ./Install already run, or QA stumbled past to run newhelp
    :
else
    cd $PCP_PMDAS_DIR/nvidia
    $sudo $PCP_BINADM_DIR/newhelp -n root help >$tmp.out 2>&1
    if [ -f $PCP_PMDAS_DIR/nvidia/help.dir ]
    then
	:
    else
	cat $tmp.out
	echo "Arrgh ... failed to create help.dir"
	sts=1
	exit
    fi
    cd $here
fi

# real QA test starts here
echo
echo "== Testing behaviour with no nvidia library available"
pminfo -L -K clear -K add,120,$pmda -dfmtT -n $pmns nvidia 2>&1 | _filter

echo
echo "== Testing behaviour with QA wrapper nvidia library"
export LD_LIBRARY_PATH=$here/src
pminfo -L -K clear -K add,120,$pmda -dfmtT -n $pmns nvidia 2>&1 | _filter

# success, all done
status=0
exit
