#!/bin/sh
# PCP QA Test No. 606
# test python pmcc MetricGroupManager.checkMissingMetrics()
#
# Copyright (c) 2017 Red Hat.  All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"

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

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

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

pcp_pidstat="$PCP_BINADM_DIR/pcp-pidstat"
test -x $pcp_pidstat || _notrun "No pcp-pidstat(1) installed"

# real QA test starts here
export LC_TIME=POSIX

echo && echo === test various pcp tools can replay archives with all metrics present
echo == pidstat ===; pcp -z -a archives/pcp-pidstat pidstat >/dev/null || exit
echo === iostat ===; pcp -z -a archives/pmiostat_mark iostat >/dev/null || exit
echo === mpstat ===; pcp -z -a archives/pcp-mpstat mpstat >/dev/null || exit
echo === tapestat ===; pcp -z -a archives/pcp-tapestat-archive tapestat >/dev/null || exit

echo && echo === test various pcp tools fail gracefully when all metrics are NOT present
# These are all expected to fail, with a consistent (and nice) error message
echo == pidstat ===; pcp -z -a archives/pmiostat_mark pidstat 2>&1 && exit
echo === iostat ===; pcp -z -a archives/pcp-pidstat iostat 2>&1 && exit
echo === mpstat ===; pcp -z -a archives/pcp-pidstat mpstat 2>&1 && exit
echo === tapestat ===; pcp -z -a archives/pcp-pidstat tapestat 2>&1 && exit

echo && echo === test pcp-pidstat correctly reports when just one metric is missing
echo == pidstat ===; pcp -z -a archives/pcp-pidstat_missing_one_metric pidstat 2>&1 && exit

# success, all done
status=0
exit
