diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/319 | |
download | pcp-47e6e7c84f008a53061e661f31ae96629bc694ef.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/319')
-rwxr-xr-x | qa/319 | 206 |
1 files changed, 206 insertions, 0 deletions
@@ -0,0 +1,206 @@ +#! /bin/sh +# PCP QA Test No. 319 +# reworked AND and OR logic in the presence of unavailable results +# +# Copyright (c) 2007 Silicon Graphics, Inc. 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 +DEBUG='-Dappl1,appl2' +DEBUG= + +# unknown metrics +# 1U - sample.noinst (PM_INDOM_NULL) +# nU - sample.darkness (InDom 29.1) + +pmie $DEBUG -v -t 0.5sec -T 3sec <<'End-of-File' 2>$tmp.err \ +| tee $seq.full \ +| sed -e 's/.* [0-9][0-9][0-9][0-9]: \([a-z]\)/\1/' \ +| sort \ +| uniq +prime = sample.darkness; +e1 = some_inst (sample.noinst > 0) + -> print "e1: Error! should be unknown always\n"; +e2 = some_inst (sample.noinst > 0) && hinv.ncpu > 0 + -> print "e2: Error! should be false always\n"; + +true_1T_and_1T = hinv.ncpu > 0 && sample.load == 42 + -> print "true_1T_and_1T: OK should always be true\n"; +false_1T_and_1F = hinv.ncpu > 0 && sample.load != 42 + -> print "false_1T_and_1F: Error! should always be false\n"; +unknown_1T_and_1U = hinv.ncpu > 0 && sample.noinst == 42 + -> print "unknown_1T_and_1U: Error! should always be unknown\n"; +true_1T_and_nT = some_inst (hinv.ncpu > 0 && sample.colour > 0) + -> print "true_1T_and_nT: OK should always be true\n"; +false_1T_and_nF = some_inst (hinv.ncpu > 0 && sample.colour < 0) + -> print "false_1T_and_nF: Error! should always be false\n"; +unknown_1T_and_nU = some_inst (hinv.ncpu > 0 && sample.darkness > 0) + -> print "unknown_1T_and_nU: Error! should always be unknown\n"; + +false_1F_and_1T = hinv.ncpu < 0 && sample.load == 42 + -> print "false_1F_and_1T: Error! should always be false\n"; +false_1F_and_1F = hinv.ncpu < 0 && sample.load != 42 + -> print "false_1F_and_1F: Error! should always be false\n"; +false_1F_and_1U = hinv.ncpu < 0 && sample.noinst == 42 + -> print "false_1F_and_1U: Error! should always be false\n"; +false_1F_and_nT = some_inst (hinv.ncpu < 0 && sample.colour > 0) + -> print "false_1F_and_nT: Error! should always be false\n"; +false_1F_and_nF = some_inst (hinv.ncpu < 0 && sample.colour < 0) + -> print "false_1F_and_nF: Error! should always be false\n"; +false_1F_and_nU = some_inst (hinv.ncpu < 0 && sample.darkness > 0) + -> print "false_1F_and_nU: Error! should always be false\n"; + +unknown_1U_and_1T = sample.noinst == 42 && hinv.ncpu > 0 + -> print "unknown_1U_and_1T: Error! should always be unknown\n"; +false_1U_and_1F = sample.noinst == 42 && hinv.ncpu < 0 + -> print "false_1U_and_1F: Error! should always be false\n"; +unknown_1U_and_1U = sample.noinst == 42 && sample.noinst == 43 + -> print "unknown_1U_and_1U: Error! should always be unknown\n"; +unknown_1U_and_nT = some_inst (sample.noinst == 42 && sample.colour > 0) + -> print "unknown_1U_and_nT: Error! should always be unknown\n"; +false_1U_and_nF = some_inst (sample.noinst == 42 && sample.colour < 0) + -> print "false_1U_and_nF: Error! should always be false\n"; +unknown_1U_and_nU = some_inst (sample.noinst == 42 && sample.darkness > 0) + -> print "unknown_1U_and_nU: Error! should always be unknown\n"; + +true_nT_and_1T = some_inst (sample.colour > 0 && hinv.ncpu > 0) + -> print "true_nT_and_1T: OK should always be true\n"; +false_nT_and_1F = some_inst (sample.colour > 0 && hinv.ncpu < 0) + -> print "false_nT_and_1F: Error! should always be false\n"; +unknown_nT_and_1U = some_inst (sample.colour > 0 && sample.noinst == 42) + -> print "true_nT_and_nU: Error! should always be unknown\n"; +true_nT_and_nT = some_inst (sample.colour > 0 && sample.colour >= 1) + -> print "true_nT_and_nT: OK should always be true\n"; +false_nT_and_nF = some_inst (sample.colour > 0 && sample.colour < 0) + -> print "false_nT_and_nF: Error! should always be false\n"; +unknown_nT_and_nU = some_inst (sample.colour > 0 && sample.darkness > 0) + -> print "true_nT_and_nU: Error! should always be unknown\n"; + +false_nF_and_1T= some_inst (sample.colour < 0 && hinv.ncpu > 0) + -> print "false_nF_and_1T: Error! should always be false\n"; +false_nF_and_1F= some_inst (sample.colour < 0 && hinv.ncpu < 0) + -> print "false_nF_and_1F: Error! should always be false\n"; +false_nF_and_1U= some_inst (sample.colour < 0 && sample.noinst == 42) + -> print "false_nF_and_1U: Error! should always be false\n"; +false_nF_and_nT = some_inst (sample.colour < 0 && sample.colour > 0) + -> print "false_nF_and_nT: Error! should always be false\n"; +false_nF_and_nF = some_inst (sample.colour < 0 && sample.colour < -1) + -> print "false_nF_and_nF: Error! should always be false\n"; +false_nF_and_nU = some_inst (sample.colour < 0 && sample.darkness > 0) + -> print "false_nF_and_nU: Error! should always be false\n"; + +unknown_nU_and_1T = some_inst (sample.darkness > 0 && hinv.ncpu > 0) + -> print "unknown_nU_and_1T: Error! should always be unknown\n"; +unknown_nU_and_1F = some_inst (sample.darkness > 0 && hinv.ncpu < 0) + -> print "unknown_nU_and_1F: Error! should always be unknown\n"; +unknown_nU_and_1U = some_inst (sample.darkness > 0 && sample.noinst == 42) + -> print "unknown_nU_and_1U: Error! should always be unknown\n"; +unknown_nU_and_nT = some_inst (sample.darkness > 0 && sample.colour > 0) + -> print "unknown_nU_and_nT: Error! should always be unknown\n"; +// only odd one here, the nF provides the instance domain enumeration +// and since all instances are false there, the conjunct is universally +// false +false_nU_and_nF = some_inst (sample.darkness > 0 && sample.colour < 0) + -> print "false_nU_and_nF: Error! should always be false\n"; +unknown_nU_and_nU = some_inst (sample.darkness > 0 && sample.darkness > 100) + -> print "unknown_nU_and_nU: Error! should always be unknown\n"; + +true_1T_or_1T = hinv.ncpu > 0 || hinv.ncpu > -1 + -> print "true_1T_or_1T: OK should always be true\n"; +true_1T_or_1F = hinv.ncpu > 0 || hinv.ncpu < 0 + -> print "true_1T_or_1F: OK should always be true\n"; +true_1T_or_1U = hinv.ncpu > 0 || sample.noinst == 42 + -> print "true_1T_or_1U: OK should always be true\n"; +true_1T_or_nT = some_inst (hinv.ncpu > 0 || sample.colour > 0) + -> print "true_1T_or_nT: OK should always be true\n"; +true_1T_or_nF = some_inst (hinv.ncpu > 0 || sample.colour < 0) + -> print "true_1T_or_nF: OK should always be true\n"; +true_1T_or_nU = some_inst (hinv.ncpu > 0 || sample.darkness > 0) + -> print "true_1T_or_nU: OK should always be true\n"; + +true_1F_or_1T = hinv.ncpu < 0 || hinv.ncpu > 0 + -> print "true_1F_or_1T: OK should always be true\n"; +false_1F_or_1F = hinv.ncpu < 0 || hinv.ncpu < -1 + -> print "false_1F_or_1F: Error! should always be false\n"; +unknown_1F_or_1U = hinv.ncpu < 0 || sample.noinst == 42 + -> print "unknown_1F_or_1U: Error! should always be unknown\n"; +true_1F_or_nT = some_inst (hinv.ncpu < 0 || sample.colour > 0) + -> print "true_1F_or_nT: OK should always be true\n"; +false_1F_or_nF = some_inst (hinv.ncpu < 0 || sample.colour < 0) + -> print "false_1F_or_nF: Error! should always be false\n"; +unknown_1F_or_nU = some_inst (hinv.ncpu < 0 || sample.darkness > 0) + -> print "unknown_1F_or_nU: Error! should always be unknown\n"; + +true_1U_or_1T = sample.noinst == 42 || hinv.ncpu > 0 + -> print "true_1U_or_1T: OK should always be true\n"; +unknown_1U_or_1F = sample.noinst == 42 || hinv.ncpu < 0 + -> print "unknown_1U_or_1F: Error! should always be unknown\n"; +unknown_1U_or_1U = sample.noinst == 42 || sample.noinst == 43 + -> print "unknown_1U_or_1U: Error! should always be unknown\n"; +true_1U_or_nT = some_inst (sample.noinst == 42 || sample.colour > 0) + -> print "true_1U_or_nT: OK should always be true\n"; +unknown_1U_or_nF = some_inst (sample.noinst == 42 || sample.colour < 0) + -> print "unknown_1U_or_nF: Error! should always be unknown\n"; +unknown_1U_or_nU = some_inst (sample.noinst == 42 || sample.darkness > 0) + -> print "unknown_1U_or_nU: Error! should always be unknown\n"; + +true_nT_or_1T = some_inst (sample.colour > 0 || hinv.ncpu > 0) + -> print "true_nT_or_1T: OK should always be true\n"; +true_nT_or_1F = some_inst (sample.colour > 0 || hinv.ncpu < 0) + -> print "true_nT_or_1F: OK should always be true\n"; +true_nT_or_1U = some_inst (sample.colour > 0 || sample.noinst == 42) + -> print "true_nT_or_1U: OK should always be true\n"; +true_nT_or_nT = some_inst (sample.colour > 0 || sample.colour >= 1) + -> print "true_nT_or_nT: OK should always be true\n"; +true_nT_or_nF = some_inst (sample.colour > 0 || sample.colour < 0) + -> print "true_nT_or_nF: OK should always be true\n"; +true_nT_or_nU = some_inst (sample.colour > 0 || sample.darkness > 0) + -> print "true_nT_or_nU: OK should always be true\n"; + +true_nF_or_1T= some_inst (sample.colour < 0 || hinv.ncpu > 0) + -> print "true_nF_or_1T: OK should always be true\n"; +false_nF_or_1F= some_inst (sample.colour < 0 || hinv.ncpu < 0) + -> print "false_nF_or_1F: Error! should always be false\n"; +unknown_nF_or_1U= some_inst (sample.colour < 0 || sample.noinst == 42) + -> print "unknown_nF_or_1U: Error! should always be unknown\n"; +true_nF_or_nT = some_inst (sample.colour < 0 || sample.colour > 0) + -> print "true_nF_or_nT: OK should always be true\n"; +false_nF_or_nF = some_inst (sample.colour < 0 || sample.colour < -1) + -> print "false_nF_or_nF: Error! should always be false\n"; +unknown_nF_or_nU = some_inst (sample.colour < 0 || sample.darkness > 0) + -> print "unknown_nF_or_nU: Error! should always be unknown\n"; + +// this one is going to be unknown, because there are an unknown number +// of instances in the first predicate, so some_inst is universally unknown +unknown_nU_or_1T = some_inst (sample.darkness > 0 || hinv.ncpu > 0) + -> print "unknown_nU_or_1T: Error! should always be unknown\n"; +unknown_nU_or_1F = some_inst (sample.darkness > 0 || hinv.ncpu < 0) + -> print "unknown_nU_or_1F: Error! should always be unknown\n"; +unknown_nU_or_1U = some_inst (sample.darkness > 0 || sample.noinst == 42) + -> print "unknown_nU_or_1U: Error! should always be unknown\n"; +true_nU_or_nT = some_inst (sample.darkness > 0 || sample.colour > 0) + -> print "true_nU_or_nT: OK should always be true\n"; +unknown_nU_or_nF = some_inst (sample.darkness > 0 || sample.colour < 0) + -> print "unknown_nU_or_nF: Error! should always be unknown\n"; +unknown_nU_or_nU = some_inst (sample.darkness > 0 || sample.darkness > 100) + -> print "unknown_nU_or_nU: Error! should always be unknown\n"; + +End-of-File + +echo >>$seq.full +echo "=== stderr ==" >>$seq.full +cat $tmp.err >>$seq.full + +exit |