#! /bin/sh
# PCP QA Test No. 317
# pmie failure with 80%_time rule and imprecision in double arithmetic
# when integer arithmetic would workd just fine
#
# Copyright (c) 2007 Aconex.  All Rights Reserved.
#

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

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

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

# real QA test starts here
pmie -z -a src/conn20070309 -S @17:00 -T @17:10 <<'End-of-File' 2>&1 \
| fgrep -v "evaluator exiting"
service_name_cn = "CON_USE";
sample_count = "@0..4";
acx_filter = "echo";

conn_critical = 80;
conn_warning  = 70;
conn_used = "aconex.connections.inuse $sample_count";

some_inst ( (80 %_sample ($conn_used >= $conn_critical)) )
    -> shell "$acx_filter %h %i $service_name_cn CRITICAL %v Ctns\n";

some_inst ( (80 %_sample ($conn_used >= $conn_warning)) &&
    !(80 %_sample ($conn_used >= $conn_critical)) )
	-> shell "$acx_filter %h %i $service_name_cn WARNING %v Ctns\n";

some_inst ( !(80 %_sample ($conn_used >= $conn_warning)) )
    -> shell "$acx_filter %h %i $service_name_cn OK %v Ctns\n";

some_inst (count_sample ($conn_used >= $conn_critical) >= 4)
    -> shell "$acx_filter %h %i $'service_name_cn'_COUNT CRITICAL %v Ctns\n";
End-of-File

pmie -v -T 2sec <<'End-of-File' 2>&1 \
| fgrep -v "evaluator exiting" \
| sed -e '/warning cannot create stats file dir/d' \
| _filter_pmie_log
delta=3sec;
some_inst sample.hordes.one > 249
    -> print "HORDES > 249\n" "[%i] %v\n";

count_inst (sample.hordes.one > 249) > 0
    -> print "COUNT HORDES > 249\n" "%v\n";

50 %_inst (sample.hordes.one > 249)
    -> print "50% HORDES > 249: %v Ctns\n";

some_inst sample.hordes.one <= 249
    -> print "HORDES <= 249\n" "[%i] %v\n";

count_inst (sample.hordes.one <= 249) > 0
    -> print "COUNT HORDES <= 249\n" "%v\n";

50 %_inst (sample.hordes.one <= 249)
    -> print "50% HORDES <= 249: %v Ctns\n";
End-of-File


