#!/bin/sh
# PCP QA Test No. 721
# Exercise the dbpmda connection attribute interface

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

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

[ -d $PCP_PMDAS_DIR/sample ] || _notrun "sample PMDA directory is not installed"

status=0	# success is the default!
$sudo rm -rf $tmp.* $seq.full
trap "rm -f $tmp.* sample.log; exit \$status" 0 1 2 3 15

_filter()
{
    tee -a $here/$seq.full \
    | sed \
	-e '/dbpmda([0-9][0-9]*)/s//dbpmda(PID)/' \
	-e '/pmdasample([0-9][0-9]*)/s//pmdasample(PID)/' \
	-e 's/^\[[A-Z].. [A-Z]..  *[0-9][0-9]* ..:..:..]/[DATETIME]/' \
	-e "s/\.$DSO_SUFFIX /.DSO /g" \
    # end
}

# real QA test starts here
cd "$PCP_PMDAS_DIR/sample"
echo .

# pipe PMDA variant of test
echo "=== pipe PMDA ===" >>$here/$seq.full
$sudo rm -f sample.log
$sudo TERM=ansi dbpmda -n root -ie <<End-of-File 2>&1 | _filter
debug AUTH
open pipe pmdasample -l sample.log -D AUTH
attr
attr 5 "pcpqa"
attr "username" "pcpqa"
attr 0 "no-such-attr"
attr "no-such-attr"
End-of-File

# need to pause here to make sure pmdasample has seen the pipe close,
# and flushed the log before exiting
#
sleep 2

echo Checking log file, pipe mode | tee -a $here/$seq.full
cat sample.log >>$here/$seq.full
grep -i attribute sample.log | _filter
$sudo rm -f sample.log
echo .

# DSO PMDA variant of test
echo "=== DSO PMDA ===" >>$here/$seq.full
$sudo TERM=ansi dbpmda -n root -ie <<End-of-File 2>&1 | _filter
debug AUTH
open dso pmda_sample.$DSO_SUFFIX sample_init
attr
attr 5 "pcpqa"
attr "username" "pcpqa"
attr 0 "no-such-attr"
attr "no-such-attr"
End-of-File

exit 0
