diff options
Diffstat (limited to 'qa/055')
-rwxr-xr-x | qa/055 | 129 |
1 files changed, 129 insertions, 0 deletions
@@ -0,0 +1,129 @@ +#! /bin/sh +# PCP QA Test No. 055 +# pmie basic expression evaluation and scheduling +# for remote version using other hosts, see 360 +# +# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved. +# + +seq=`basename $0` +echo "QA output created by $seq" + +# get standard filters +. ./common.product +. ./common.filter + +trap "rm -f $tmp.*; exit" 0 1 2 3 15 + +# get standard filters +. ./common.filter + +rm -f $seq.full + +# here are the exercises +cat >>$tmp.config << \EOF +delta = 1 sec; + +// the meaning of life, the universe and everything +sample.long.hundred - (16 * sample.float.ten + 11 * sample.double.one) / 3; + +// instance domain exercises +inst_fetch1 = sample.bin; +inst_fetch2 = sample.bin #'bin-200' #'bin-400' #'bin-600' #'bin-800'; +inst_neg = -sample.bin; +inst_rate = rate sample.bin; +inst_sum = sum_inst sample.bin; +inst_avg = avg_inst sample.bin; +inst_max = max_inst sample.bin; +inst_min = min_inst sample.bin; +inst_count = count_inst sample.bin > 400; +inst_add1 = sample.bin + sample.bin; +inst_add2 = sample.bin + sample.longlong.million; +inst_add3 = sample.longlong.million + sample.bin; +inst_sub = sample.bin - sample.bin; +inst_mul = sample.bin * sample.bin; +inst_div = sample.bin / sample.bin; +inst_eq1 = sample.bin == sample.bin; +inst_eq2 = sample.bin == sample.bin + 1; +inst_eq3 = sample.bin == 500; +inst_neq1 = sample.bin != sample.bin + 1; +inst_neq2 = sample.bin != sample.bin; +inst_neq3 = sample.bin != 500; +inst_gt1 = sample.bin + 1 > sample.bin; +inst_gt2 = sample.bin > sample.bin + 1; +inst_gt3 = sample.bin > 500; +inst_lt1 = sample.bin < sample.bin + 1; +inst_lt2 = sample.bin + 1 < sample.bin; +inst_lt3 = sample.bin < 500; +inst_geq1 = sample.bin >= sample.bin; +inst_geq2 = sample.bin >= sample.bin + 1; +inst_leq1 = sample.bin <= sample.bin; +inst_leq2 = sample.bin + 1 <= sample.bin; + +// sample time domain exercises +time_fetch0 = sample.float.ten @0; +time_fetch1 = sample.float.ten @1; +time_fetch2 = sample.float.ten @2; +time_fetch01 = sample.float.ten @0..1; +time_fetch12 = sample.float.ten @1..2; +time_fetch02 = sample.float.ten @0..2; +time_sum = sum_sample sample.float.ten @0..2; +time_avg = avg_sample sample.float.ten @0..2; +time_max = max_sample sample.float.ten @0..2; +time_min = min_sample sample.float.ten @0..2; +time_count = count_sample sample.float.ten @0..2 >= 10; +time_add1 = sample.float.ten @0 + sample.float.ten @1 + sample.float.ten @2; +time_add2 = sample.float.ten @0..1 + sample.float.ten @1..2; +time_add3 = sample.float.ten @0..2 + 1; +time_add4 = 1 + sample.float.ten @0..2; +time_gt1 = sample.float.ten @0..1 + 1 > sample.float.ten @0..1; +time_gt2 = sample.float.ten @0..1 > sample.float.ten @0..1 + 1; +time_gt3 = sample.float.ten @0..2 + 1 > sample.float.ten @0..2; +time_gt4 = sample.float.ten @0..2 > sample.float.ten @0..2 + 1; + +delta = 2 sec; + +// multiple domains +multi1 = sum_sample avg_inst sample.bin @0..2; +multi2 = avg_inst sum_sample sample.bin @0..2; + +delta = 3 sec; + +// boolean operators +arg1 = "sample.bin >= 500"; +arg2 = "sample.bin <= 500"; +arg3 = "sample.bin < 1000"; +arg4 = "sample.bin > 1000"; +bool1 = $arg1; +bool2 = $arg2; +bool_not = ! $arg1; +bool_and = $arg1 && $arg2; +bool_or = $arg1 || $arg2; +bool_some1 = some_inst $arg1; +bool_some2 = some_inst $arg4; +bool_all1 = all_inst $arg3; +bool_all2 = all_inst $arg1; +bool_pcnt1 = 50 %_inst $arg1; +bool_pcnt2 = 70 %_inst $arg1; +bool_pcnt3 = 0 %_inst $arg4; +bool_pcnt4 = 100 %_inst $arg3; + +delta = 4 sec; + +// actions +act1 = true -> shell "echo >>/tmp/pmie.err act1 fired"; +act2 = false -> shell "echo >>/tmp/pmie.err act2 fired OHH NOOOOO"; +act3 = true -> shell "echo >>/tmp/pmie.err act3..." & shell "echo >>/tmp/pmie.err fired"; +act4 = true -> shell "echo >>/tmp/pmie.err act 4 fired" | shell "echo >>/tmp/pmie.err OHH NOOOO"; +EOF + +cat $tmp.config >>$seq.full + +$sudo rm -f /tmp/pmie.err +pmie -T 10 -v $tmp.config >$tmp.out 2>$tmp.err +( echo; echo "=== err ==="; cat $tmp.err ) >>$seq.full +cat $tmp.err | _show_pmie_exit +( echo; echo "=== out ==="; cat $tmp.out ) >>$seq.full +cat $tmp.out | LC_COLLATE=POSIX sort +( echo; echo "=== /tmp/pmie.err ==="; cat /tmp/pmie.err ) >>$seq.full +cat /tmp/pmie.err | LC_COLLATE=POSIX sort |