#!/bin/sh
# PCP QA Test No. 1318
# Test pmprobe batching. See also qa/364
#
# Copyright (c) 2018 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

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

pmprobe --help 2>&1 | grep -q batch
[ $? -ne 0 ] && _notrun "installed pmprobe does not support batch option"

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;echo == test pmLookupName batching
#
# note this fails without batching the name lookups (exceeds 64k pdu size)
#
n=`yes disk.dev.read | head -15000 | xargs pmprobe 2>&1 | grep "IPC protocol failure" | wc -l`
[ $n -ne 0 ] && echo FAILED && status=1 && exit

echo;echo == test batching with various pmprobe arguments
for args in "" -v -i -I -f -fv -fi -fI
do
    for k in 1 10 100 1000
    do
	for batch in 1 10 100 1000
	do
	    echo === batch=$batch k=$k args="\"$args\""
	    yes simple | head -$k | xargs pmprobe -b $batch -V $args | tail -4
	done
    done
done

# success, all done
status=0
exit
