#!/bin/sh
# PCP QA Test No. 1089
# Testing RHBZ1431292
#
# Copyright (c) 2017 Red Hat.  All Rights Reserved.
#

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

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

host=`hostname`
[ -z "$host" ] && _notrun "Cannot discover local host name"

ATOP="$PCP_BINADM_DIR/pcp-atop"
test -f "$ATOP" || _notrun "$ATOP is not installed, skipped"

_cleanup()
{
    cd $here
    $sudo rm -rf $tmp $tmp.*
}

_filter()
{
    sed \
	-e 's/^Host.*//' \
	-e 's/inst \[.*\] value/inst [NNN] value/' \
	-e 's/inst \[[0-9][0-9]* or ".*/inst [NNN]/' \
	-e '/value /{
s/value [0-9][0-9]*/value INTEGER/
s/value ".*"/value STRING/
s/value \[.*\]/value BINARYDATA/
}' \
	-e "s/$host/HOSTNAME/g" \
	#end
}
signal=$PCP_BINADM_DIR/pmsignal
status=1	# failure is the default!
$sudo rm -rf $tmp $tmp.* $seq.full
trap "_cleanup; exit \$status" 0 1 2 3 15

# real QA test starts here
echo "starting pcp-atop with no limit, we should have to kill this instance"
$ATOP -w $tmp/no-end >$tmp.out 2>$tmp.err &
atop_pmid=$!

echo "atop_pmid=$atop_pmid" >>$here/$seq.full
ps -ef | grep pcp-atop >>$here/$seq.full

pmsleep 5
$signal -s TERM $atop_pmid

echo "=== $tmp/no-end/*.log ===" >>$here/$seq.full
cat $tmp/no-end/*.log >>$here/$seq.full

pmafm $tmp/no-end/no-end.folio run pminfo -f pmcd hinv.ncpu hinv.ndisk hinv.ninterface 2>&1 3>&1 | _filter
echo "pcp-atop output ..."
cat $tmp.out
echo "pcp-atop stderr ..."
cat $tmp.err

rm $tmp.out $tmp.err

echo "starting pcp-atop with a sample count, should end automatically"
$ATOP -w $tmp/end 1 5 >$tmp.out 2>$tmp.err
atop_pmid=$!
pmsleep 6
#
echo "ps output should be empty"
ps --no-headers -f --pid $atop_pmid
pmafm $tmp/end/end.folio run pminfo -f pmcd hinv.ncpu hinv.ndisk hinv.ninterface 2>&1 3>&1 | _filter
echo "pcp-atop output ..."
cat $tmp.out
echo "pcp-atop stderr ..."
cat $tmp.err

# success, all done
status=0
exit
