#! /bin/sh
# PCP QA Test No. 
# checking trace stub library
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#

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

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

rm -f $seq.out
if [ $PCP_VER -lt 20200 ]; then
    cat $seq.in >>$seq.out
else
    # tweak output for PCP 2.2...
    cat $seq.in | perl -e '
	@in=<>;
	$"="";
	print "@in[0..$#in-1]";
	print "pmtracecounter: counter '\'counter\'', value=101.100000\n";
	print "$in[$#in]";' >>$seq.out
fi

_cleanup()
{
    cd $here
    if [ -n "$savedtracehost" ]
    then
	PCP_TRACE_HOST=$savedtracehost; export PCP_TRACE_HOST
    fi
    exit $status
}

_filter()
{
    sed -e "s#$PCP_DEMOS_DIR/trace/app1#app1#"
}

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

if [ -n "$PCP_TRACE_HOST" ]
then
    savedtracehost=$PCP_TRACE_HOST; unset PCP_TRACE_HOST
fi

# real QA test starts here

echo "Checking trace stub library builds ..."
cd $PCP_DEMOS_DIR/trace
$sudo make -f Makefile.stub clobber >/dev/null 2>&1
if [ $PCP_PLATFORM = linux -o $PCP_PLATFORM = solaris ]
then
    $sudo make -f Makefile.stub lib/libpcp_trace.so >/dev/null 2>&1
    export LD_PRELOAD=$PCP_DEMOS_DIR/trace/lib/libpcp_trace.so.2
elif [ $PCP_PLATFORM = darwin ]
then
    $sudo make -f Makefile.stub >/dev/null 2>&1
    DYLD_INSERT_LIBRARIES=$PCP_DEMOS_DIR/trace/lib/libpcp_trace.dylib
    DYLD_FORCE_FLAT_NAMESPACE=yes
    export DYLD_INSERT_LIBRARIES DYLD_FORCE_FLAT_NAMESPACE
else
    _notrun "Unknown platform ($PCP_PLATFORM)"
fi

echo make succeeded.

# this uses all of the externally visible libpcp_trace symbols
$PCP_DEMOS_DIR/trace/app1 2>&1 | _filter

# success, all done
status=0
exit
