Skip to content
Snippets Groups Projects
Commit e5e7d9e1 authored by Arpad Lovassy's avatar Arpad Lovassy Committed by Gerrit Code Review
Browse files

Merge "uninit testcases have been added for boolean"

parents 2479eb11 e0246781
No related branches found
No related tags found
No related merge requests found
/****************************************************************************** /******************************************************************************
* Copyright (c) 2000-2019 Ericsson Telecom AB * Copyright (c) 2000-2019 Ericsson Telecom AB
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0 * are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
* *
* Contributors: * Contributors:
* Balasko, Jeno * Balasko, Jeno
* Baranyi, Botond * Baranyi, Botond
* Kovacs, Ferenc * Kovacs, Ferenc
* Raduly, Csaba * Raduly, Csaba
* Szabados, Kristof * Szabados, Kristof
* Szabo, Janos Zoltan – initial implementation * Szabo, Janos Zoltan – initial implementation
* *
******************************************************************************/ ******************************************************************************/
module TboolOper module TboolOper
{const boolean TboolOper_const1:=true; {
modulepar boolean tsp_uninit;
const boolean TboolOper_const1:=true;
type component boolOper_comptype { }; type component boolOper_comptype { };
testcase boolAssign() runs on boolOper_comptype testcase boolAssign() runs on boolOper_comptype
...@@ -25,23 +28,23 @@ testcase boolAssign() runs on boolOper_comptype ...@@ -25,23 +28,23 @@ testcase boolAssign() runs on boolOper_comptype
x2:=false; x2:=false;
x3:=x2; x3:=x2;
if (x1) {setverdict(pass);} //at declaration, value if (x1) {setverdict(pass);} //at declaration, value
else {setverdict(fail);} else {setverdict(fail);}
if (x4) {setverdict(pass);} //at declaration, variable if (x4) {setverdict(pass);} //at declaration, variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x2)) {setverdict(pass);} //later, value if (not(x2)) {setverdict(pass);} //later, value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x3)) {setverdict(pass);} //later, variable if (not(x3)) {setverdict(pass);} //later, variable
else {setverdict(fail);} else {setverdict(fail);}
} }
testcase boolConst() runs on boolOper_comptype { testcase boolConst() runs on boolOper_comptype {
const boolean TboolOper_const3:=false; const boolean TboolOper_const3:=false;
if (TboolOper_const1) {setverdict(pass);} //definition part if (TboolOper_const1) {setverdict(pass);} //definition part
else {setverdict(fail);} else {setverdict(fail);}
//if (TboolOper_const2==2) {setverdict(pass);} //control part //if (TboolOper_const2==2) {setverdict(pass);} //control part
// else {setverdict(fail);} // else {setverdict(fail);}
if (not(TboolOper_const3)) {setverdict(pass);} //testcase if (not(TboolOper_const3)) {setverdict(pass);} //testcase
else {setverdict(fail);} else {setverdict(fail);}
} }
testcase boolCompEq() runs on boolOper_comptype testcase boolCompEq() runs on boolOper_comptype
...@@ -50,21 +53,21 @@ testcase boolCompEq() runs on boolOper_comptype ...@@ -50,21 +53,21 @@ testcase boolCompEq() runs on boolOper_comptype
x2:=true; x2:=true;
x3:=false; x3:=false;
if (x1==x2) {setverdict(pass);} //variable_variable if (x1==x2) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x3==x2)) {setverdict(pass);} //variable_variable if (not(x3==x2)) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x1==true) {setverdict(pass);} //variable_value if (x1==true) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x1==false)) {setverdict(pass);} //variable_value if (not(x1==false)) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (true==x1) {setverdict(pass);} //value_variable if (true==x1) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(false==x1)) {setverdict(pass);} //value_variable if (not(false==x1)) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (true==true) {setverdict(pass);} //value_value if (true==true) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(true==false)) {setverdict(pass);} //value_value if (not(true==false)) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
} }
testcase boolCompNotEq() runs on boolOper_comptype testcase boolCompNotEq() runs on boolOper_comptype
...@@ -73,21 +76,21 @@ testcase boolCompNotEq() runs on boolOper_comptype ...@@ -73,21 +76,21 @@ testcase boolCompNotEq() runs on boolOper_comptype
x2:=false; x2:=false;
x3:=true; x3:=true;
if (x1!=x2) {setverdict(pass);} //variable_variable if (x1!=x2) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x1!=x3)) {setverdict(pass);} //variable_variable if (not(x1!=x3)) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x1!=false) {setverdict(pass);} //variable_value if (x1!=false) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x1!=true)) {setverdict(pass);} //variable_value if (not(x1!=true)) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (true!=x2) {setverdict(pass);} //value_variable if (true!=x2) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(false!=x2)) {setverdict(pass);} //value_variable if (not(false!=x2)) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (true!=false) {setverdict(pass);} //value_value if (true!=false) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(false!=false)) {setverdict(pass);} //value_value if (not(false!=false)) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
} }
testcase boolNot() runs on boolOper_comptype testcase boolNot() runs on boolOper_comptype
...@@ -99,13 +102,13 @@ testcase boolNot() runs on boolOper_comptype ...@@ -99,13 +102,13 @@ testcase boolNot() runs on boolOper_comptype
x5:=not(true); x5:=not(true);
x6:=not(false); x6:=not(false);
if (not(x3)) {setverdict(pass);} //variable if (not(x3)) {setverdict(pass);} //variable
else {setverdict(fail);} else {setverdict(fail);}
if (x4) {setverdict(pass);} //variable if (x4) {setverdict(pass);} //variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x5)) {setverdict(pass);} //value if (not(x5)) {setverdict(pass);} //value
else {setverdict(fail);} else {setverdict(fail);}
if (x6) {setverdict(pass);} //value if (x6) {setverdict(pass);} //value
else {setverdict(fail);} else {setverdict(fail);}
} }
testcase boolAnd() runs on boolOper_comptype testcase boolAnd() runs on boolOper_comptype
...@@ -129,37 +132,37 @@ testcase boolAnd() runs on boolOper_comptype ...@@ -129,37 +132,37 @@ testcase boolAnd() runs on boolOper_comptype
x17:=false and true; x17:=false and true;
x18:=false and false; x18:=false and false;
if (x3) {setverdict(pass);} //variable_variable if (x3) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x4)) {setverdict(pass);} //variable_variable if (not(x4)) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x5)) {setverdict(pass);} //variable_variable if (not(x5)) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x6)) {setverdict(pass);} //variable_variable if (not(x6)) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x7) {setverdict(pass);} //variable_value if (x7) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x8)) {setverdict(pass);} //variable_value if (not(x8)) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x9)) {setverdict(pass);} //variable_value if (not(x9)) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x10)) {setverdict(pass);} //variable_value if (not(x10)) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (x11) {setverdict(pass);} //value_variable if (x11) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x12)) {setverdict(pass);} //value_variable if (not(x12)) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x13)) {setverdict(pass);} //value_variable if (not(x13)) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x14)) {setverdict(pass);} //value_variable if (not(x14)) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x15) {setverdict(pass);} //value_value if (x15) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x16)) {setverdict(pass);} //value_value if (not(x16)) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x17)) {setverdict(pass);} //value_value if (not(x17)) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x18)) {setverdict(pass);} //value_value if (not(x18)) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
} }
testcase boolOr() runs on boolOper_comptype testcase boolOr() runs on boolOper_comptype
...@@ -183,37 +186,37 @@ testcase boolOr() runs on boolOper_comptype ...@@ -183,37 +186,37 @@ testcase boolOr() runs on boolOper_comptype
x17:=false or true; x17:=false or true;
x18:=false or false; x18:=false or false;
if (x3) {setverdict(pass);} //variable_variable if (x3) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x4) {setverdict(pass);} //variable_variable if (x4) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x5) {setverdict(pass);} //variable_variable if (x5) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x6)) {setverdict(pass);} //variable_variable if (not(x6)) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x7) {setverdict(pass);} //variable_value if (x7) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (x8) {setverdict(pass);} //variable_value if (x8) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (x9) {setverdict(pass);} //variable_value if (x9) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x10)) {setverdict(pass);} //variable_value if (not(x10)) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (x11) {setverdict(pass);} //value_variable if (x11) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x12) {setverdict(pass);} //value_variable if (x12) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x13) {setverdict(pass);} //value_variable if (x13) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x14)) {setverdict(pass);} //value_variable if (not(x14)) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x15) {setverdict(pass);} //value_value if (x15) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (x16) {setverdict(pass);} //value_value if (x16) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (x17) {setverdict(pass);} //value_value if (x17) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x18)) {setverdict(pass);} //value_value if (not(x18)) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
} }
testcase boolXor() runs on boolOper_comptype testcase boolXor() runs on boolOper_comptype
...@@ -237,44 +240,208 @@ testcase boolXor() runs on boolOper_comptype ...@@ -237,44 +240,208 @@ testcase boolXor() runs on boolOper_comptype
x17:=false xor true; x17:=false xor true;
x18:=false xor false; x18:=false xor false;
if (not(x3)) {setverdict(pass);} //variable_variable if (not(x3)) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x4) {setverdict(pass);} //variable_variable if (x4) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x5) {setverdict(pass);} //variable_variable if (x5) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x6)) {setverdict(pass);} //variable_variable if (not(x6)) {setverdict(pass);} //variable_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x7)) {setverdict(pass);} //variable_value if (not(x7)) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (x8) {setverdict(pass);} //variable_value if (x8) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (x9) {setverdict(pass);} //variable_value if (x9) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x10)) {setverdict(pass);} //variable_value if (not(x10)) {setverdict(pass);} //variable_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x11)) {setverdict(pass);} //value_variable if (not(x11)) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x12) {setverdict(pass);} //value_variable if (x12) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (x13) {setverdict(pass);} //value_variable if (x13) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x14)) {setverdict(pass);} //value_variable if (not(x14)) {setverdict(pass);} //value_variable
else {setverdict(fail);} else {setverdict(fail);}
if (not(x15)) {setverdict(pass);} //value_value if (not(x15)) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (x16) {setverdict(pass);} //value_value if (x16) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (x17) {setverdict(pass);} //value_value if (x17) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
if (not(x18)) {setverdict(pass);} //value_value if (not(x18)) {setverdict(pass);} //value_value
else {setverdict(fail);} else {setverdict(fail);}
}
testcase boolUninitXor() runs on boolOper_comptype {
var boolean x1,x2,x3;
x1:=true;
@try {
x3:=x1 xor x2;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:=x2 xor x1;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:= true xor x2;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:=x2 xor true;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
}
testcase boolUninitOr() runs on boolOper_comptype {
var boolean x1,x2,x3;
x1:=false;
@try {
x3:=x1 or x2;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:=x2 or x1;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:= false or x2;
if(x3 != true) {setverdict(fail, "true or DTE expected")}
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:=x2 or true;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
}
testcase boolUninitAnd() runs on boolOper_comptype {
var boolean x1,x2,x3;
x1:=true;
@try {
x3:=x1 and x2;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:=x2 and x1;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:= true and x2;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x3:=x2 and true;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
}
testcase boolUninitNot() runs on boolOper_comptype {
var boolean x1,x2;
@try {
x2:= not x1;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
}
testcase boolUninitTemplate() runs on boolOper_comptype {
var template boolean x2;
var boolean x1;
@try {
x2:= x1;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x2:= not x1;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x1:= valueof(x2);
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
}
testcase boolUninitModulepar() runs on boolOper_comptype {
var template boolean x2;
var boolean x1 := true;
@try {
x2:= tsp_uninit;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x2:= not tsp_uninit;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
@try {
x2:= tsp_uninit or x1;
setverdict(fail, "This line should not reached. DTE expected")
} @catch(e) {
//check e
setverdict(pass);
}
} }
type boolean myb1 type boolean myb1
type boolean myb2 (true) type boolean myb2 (true)
type boolean myb3 (false) type boolean myb3 (false)
// FATAL_ERROR() with R8B: `type boolean myb3 (true, valueof(t_myb1))'. // FATAL_ERROR() with R8B: `type boolean myb3 (true, valueof(t_myb1));'
type boolean myb4 (c_myb1, not c_myb1 and c_myb1) type boolean myb4 (c_myb1, not c_myb1 and c_myb1);
type myb3 myb5 type myb3 myb5
type boolean myb6 (myb2, myb3) type boolean myb6 (myb2, myb3)
...@@ -326,7 +493,7 @@ type record TestRecord { ...@@ -326,7 +493,7 @@ type record TestRecord {
testcase boolShortCircuit() runs on boolOper_comptype { testcase boolShortCircuit() runs on boolOper_comptype {
// create a union variable, make sure the boolean field is not chosen // create a union variable, make sure the boolean field is not chosen
var TestUnion myUnion := { t := 1 }; var TestUnion myUnion := { t := 1 };
// reference the boolean field in the 2nd part of a condition using 'and' or 'or' // reference the boolean field in the 2nd part of a condition using 'and' or 'or'
// only the first part of the condition should be evaluated, since // only the first part of the condition should be evaluated, since
// evaluating the 2nd part would produce a DTE (because the field isn't chosen) // evaluating the 2nd part would produce a DTE (because the field isn't chosen)
...@@ -347,7 +514,7 @@ testcase boolShortCircuit() runs on boolOper_comptype { ...@@ -347,7 +514,7 @@ testcase boolShortCircuit() runs on boolOper_comptype {
// create a record variable, make sure the boolean field is omitted // create a record variable, make sure the boolean field is omitted
var TestRecord myRec := { t := 1, b := omit }; var TestRecord myRec := { t := 1, b := omit };
// reference the boolean field in the 2nd part of a condition, same as with the union field // reference the boolean field in the 2nd part of a condition, same as with the union field
// (referencing the boolean field would cause a DTE again, because it is omitted) // (referencing the boolean field would cause a DTE again, because it is omitted)
if (ispresent(myRec.b) and myRec.b) { if (ispresent(myRec.b) and myRec.b) {
...@@ -394,6 +561,12 @@ control { ...@@ -394,6 +561,12 @@ control {
execute(boolIsvalue()); execute(boolIsvalue());
execute(boolShortCircuit()); execute(boolShortCircuit());
execute(boolCompEqOmit()); execute(boolCompEqOmit());
execute(boolUninitXor());
execute(boolUninitOr());
execute(boolUninitAnd());
execute(boolUninitNot());
execute(boolUninitTemplate());
execute(boolUninitModulepar());
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment