#!/bin/sh
# PCP QA Test No. 702
# Exercise python PMAPI layer - basic live host tests
#
# Copyright (c) 2012-2014 Red Hat.
#

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

. ./common.python

status=1	# failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15

$python -c 'from pcp import pmapi' 2>/dev/null
test $? -eq 0 || _notrun 'Python pcp pmapi module is not installed'

# Mostly contextual filtering to ensure deterministic output.
#
# The PMID, INDOM, freemem and pernode filtering is all for
# non-Linux platforms where the kernel PMDA is in a different
# domain and the PMNS is different.
#
_filter()
{
    tee -a $seq_full \
    | sed \
	-e 's/0x[0-9a-f][0-9a-f]*/ADDR/g' \
	-e "/^pmGetContextHostName:/s/`hostname`/HOSTNAME/" \
	-e '/^tv_/s/[0-9][0-9]*/NUMBER/' \
	-e '/^pmExtractValue:/s/[0-9][0-9]*/NUMBER/' \
	-e '/^pmTraversePMNS:/s/[0-9][0-9]*/NUMBER/' \
	-e '/^Ran 1 test/s/[0-9][0-9]*\.[0-9][0-9]*/SS.MMM/' \
	-e '/pmConvScale,/s/[0-9][0-9]*\.[0-9][0-9]*/N.M/g' \
	-e '/pmAtomStr /s/[0-9][0-9]*\.[0-9][0-9]*e.*/I.Je+K/g' \
	-e '/<pcp\.pmapi\.c/s/c_.*_Array/c_INTEGER_Array/' \
	-e 's/<ctypes.LP_/<pcp\.pmapi\.LP_/' \
	-e 's/pmid\([= ]\)[0-9]*\.[0-9]*\.[0-9]*/pmid\1PMID/g' \
	-e '/^pmLookupName: /s/[0-9]*\.[0-9]*\.[0-9]*/PMID/g' \
	-e '/^pmIDStr: /s/[0-9]*\.[0-9]*\.[0-9]*/PMID/g' \
	-e '/^pmInDomStr: /s/[0-9]*\.[0-9]*/INDOM/g' \
	-e '/^pmNameAll: mem.freemem/d' \
	-e "/'pernode'/"'{
s/.pernode., //
s/1, //
}' \
    # end
}

# real QA test starts here
$python $here/src/test_pcp.py 2>&1 \
| _filter 
_check_unittest live $seq_full
status=$?
exit
