summaryrefslogtreecommitdiff
path: root/qa/055
diff options
context:
space:
mode:
Diffstat (limited to 'qa/055')
-rwxr-xr-xqa/055129
1 files changed, 129 insertions, 0 deletions
diff --git a/qa/055 b/qa/055
new file mode 100755
index 0000000..548bb06
--- /dev/null
+++ b/qa/055
@@ -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