From 596bedb95d8e4c250118c351f2baa91bd47d65e1 Mon Sep 17 00:00:00 2001 From: balaskoa <Jeno.Balasko@ericsson.com> Date: Wed, 6 Nov 2019 17:02:03 +0100 Subject: [PATCH] New testcases for handling TitanBitString_Element Signed-off-by: balaskoa <Jeno.Balasko@ericsson.com> Change-Id: I87fd8fc3bbfb1fc792a225086c5e61f26cdf2cc0 --- regression_test/bitstrOper/TbitstrOper.ttcn | 509 ++++++++++++-------- 1 file changed, 298 insertions(+), 211 deletions(-) diff --git a/regression_test/bitstrOper/TbitstrOper.ttcn b/regression_test/bitstrOper/TbitstrOper.ttcn index 6e70f4c7c..a0c4edb3e 100644 --- a/regression_test/bitstrOper/TbitstrOper.ttcn +++ b/regression_test/bitstrOper/TbitstrOper.ttcn @@ -25,13 +25,13 @@ testcase bitstrAssign() runs on bitstrOper_comptype x3:=''B; x4:='0101'B; if (x1=='01101'B) {setverdict(pass);} //at declaration - else {setverdict(fail);} + else {setverdict(fail);} if (x2=='0111'B) {setverdict(pass);} //later - else {setverdict(fail);} + else {setverdict(fail);} if (x3==''B) {setverdict(pass);} //empty string - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='0101'B) {setverdict(pass);} //change of size - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAssignElem10() runs on bitstrOper_comptype @@ -47,15 +47,15 @@ testcase bitstrAssignElem10() runs on bitstrOper_comptype x4[3]:=x2[3]; x5[1]:=x6; if (x1[0]=='1'B) {setverdict(pass);} //accessing an element - else {setverdict(fail);} + else {setverdict(fail);} if (x3=='0'B) {setverdict(pass);} //change string to element - else {setverdict(fail);} + else {setverdict(fail);} if (x1=='10111'B) {setverdict(pass);} //change element to value - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='11101'B) {setverdict(pass);} //change element to element - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='10111'B) {setverdict(pass);} //change element to string - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAssignElem01() runs on bitstrOper_comptype @@ -71,13 +71,13 @@ testcase bitstrAssignElem01() runs on bitstrOper_comptype x4[1]:=x2[4]; x5[1]:=x6; if (x3=='1'B) {setverdict(pass);} //change string to element - else {setverdict(fail);} + else {setverdict(fail);} if (x1=='00100'B) {setverdict(pass);} //change element to value - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='01000'B) {setverdict(pass);} //change element to element - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='01000'B) {setverdict(pass);} //change element to string - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAssignElem00() runs on bitstrOper_comptype @@ -93,13 +93,13 @@ testcase bitstrAssignElem00() runs on bitstrOper_comptype x4[1]:=x2[4]; x5[1]:=x6; if (x3=='0'B) {setverdict(pass);} //change string to element - else {setverdict(fail);} + else {setverdict(fail);} if (x1=='00000'B) {setverdict(pass);} //change element to value - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='00000'B) {setverdict(pass);} //change element to element - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='00000'B) {setverdict(pass);} //change element to string - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAssignElem11() runs on bitstrOper_comptype @@ -115,25 +115,25 @@ testcase bitstrAssignElem11() runs on bitstrOper_comptype x4[1]:=x2[4]; x5[1]:=x6; if (x3=='1'B) {setverdict(pass);} //change string to element - else {setverdict(fail);} + else {setverdict(fail);} if (x1=='11111'B) {setverdict(pass);} //change element to value - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='11111'B) {setverdict(pass);} //change element to element - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='11111'B) {setverdict(pass);} //change element to string - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAssignElemAdd() runs on bitstrOper_comptype {var bitstring x1,x2; - x1:='000'B; - x2:='1111'B; - x1[3]:='1'B; - x2[4]:=x1[0]; - if (x1=='0001'B) {setverdict(pass);} //add "1" - else {setverdict(fail);} - if (x2=='11110'B) {setverdict(pass);} //add "0" - else {setverdict(fail);} + x1:='000'B; + x2:='1111'B; + x1[3]:='1'B; + x2[4]:=x1[0]; + if (x1=='0001'B) {setverdict(pass);} //add "1" + else {setverdict(fail);} + if (x2=='11110'B) {setverdict(pass);} //add "0" + else {setverdict(fail);} } testcase bitstrLengthof() runs on bitstrOper_comptype @@ -146,104 +146,104 @@ testcase bitstrLengthof() runs on bitstrOper_comptype x4:='0101'B; x5[2]:='0'B; if (lengthof(x1)==5) {setverdict(pass);} //at declaration - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x2)==4) {setverdict(pass);} //later - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x3)==0) {setverdict(pass);} //empty string - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x4)==4) {setverdict(pass);} //change of size - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x5)==3) {setverdict(pass);} //add element - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrConst() runs on bitstrOper_comptype {const bitstring TbitstrOper_const3:='0001'B; - if (TbitstrOper_const1=='1000'B) {setverdict(pass);} //definition part - else {setverdict(fail);} - if (TbitstrOper_const3=='0001'B) {setverdict(pass);} //testcase - else {setverdict(fail);} + if (TbitstrOper_const1=='1000'B) {setverdict(pass);} //definition part + else {setverdict(fail);} + if (TbitstrOper_const3=='0001'B) {setverdict(pass);} //testcase + else {setverdict(fail);} } testcase bitstrComp_str_str() runs on bitstrOper_comptype {var bitstring x1,x2,x3; - x1:='0110'B; - x2:='0110'B; - x3:='011'B; - if (x1==x2) {setverdict(pass);} //equality, equals - else {setverdict(fail);} - if (not(x3==x2)) {setverdict(pass);} //equality, not equals - else {setverdict(fail);} - if (x1!=x3) {setverdict(pass);} //non-equality, not equals - else {setverdict(fail);} - if (not(x1!=x2)) {setverdict(pass);} //non-equality, equals - else {setverdict(fail);} + x1:='0110'B; + x2:='0110'B; + x3:='011'B; + if (x1==x2) {setverdict(pass);} //equality, equals + else {setverdict(fail);} + if (not(x3==x2)) {setverdict(pass);} //equality, not equals + else {setverdict(fail);} + if (x1!=x3) {setverdict(pass);} //non-equality, not equals + else {setverdict(fail);} + if (not(x1!=x2)) {setverdict(pass);} //non-equality, equals + else {setverdict(fail);} } testcase bitstrComp_el_str() runs on bitstrOper_comptype {var bitstring x1,x2,x3; - x1:='0110'B; - x2:='1'B; - x3:='0'B; - if (x1[2]==x2) {setverdict(pass);} //equality, equals - else {setverdict(fail);} - if (not(x1[2]==x3)) {setverdict(pass);} //equality, not equals - else {setverdict(fail);} - if (x1[1]!=x3) {setverdict(pass);} //non-equality, not equals - else {setverdict(fail);} - if (not(x1[1]!='1'B)) {setverdict(pass);} //non-equality, equals - else {setverdict(fail);} + x1:='0110'B; + x2:='1'B; + x3:='0'B; + if (x1[2]==x2) {setverdict(pass);} //equality, equals + else {setverdict(fail);} + if (not(x1[2]==x3)) {setverdict(pass);} //equality, not equals + else {setverdict(fail);} + if (x1[1]!=x3) {setverdict(pass);} //non-equality, not equals + else {setverdict(fail);} + if (not(x1[1]!='1'B)) {setverdict(pass);} //non-equality, equals + else {setverdict(fail);} } testcase bitstrComp_str_el() runs on bitstrOper_comptype {var bitstring x1,x2,x3; - x1:='0110'B; - x2:='1'B; - x3:='0'B; - if (x2==x1[1]) {setverdict(pass);} //equality, equals - else {setverdict(fail);} - if (not(x3==x1[1])) {setverdict(pass);} //equality, not equals - else {setverdict(fail);} - if (x2!=x1[0]) {setverdict(pass);} //non-equality, not equals - else {setverdict(fail);} - if (not('1'B!=x1[1])) {setverdict(pass);} //non-equality, equals - else {setverdict(fail);} + x1:='0110'B; + x2:='1'B; + x3:='0'B; + if (x2==x1[1]) {setverdict(pass);} //equality, equals + else {setverdict(fail);} + if (not(x3==x1[1])) {setverdict(pass);} //equality, not equals + else {setverdict(fail);} + if (x2!=x1[0]) {setverdict(pass);} //non-equality, not equals + else {setverdict(fail);} + if (not('1'B!=x1[1])) {setverdict(pass);} //non-equality, equals + else {setverdict(fail);} } testcase bitstrComp_el_el() runs on bitstrOper_comptype {var bitstring x1,x2,x3; - x1:='0110'B; - x2:='0110'B; - x3:='011'B; - if (x1[2]==x2[2]) {setverdict(pass);} //equality, equals - else {setverdict(fail);} - if (not(x1[2]==x2[3])) {setverdict(pass);} //equality, not equals - else {setverdict(fail);} - if (x1[1]!=x3[0]) {setverdict(pass);} //non-equality, not equals - else {setverdict(fail);} - if (not(x1[1]!=x3[1])) {setverdict(pass);} //non-equality, equals - else {setverdict(fail);} + x1:='0110'B; + x2:='0110'B; + x3:='011'B; + if (x1[2]==x2[2]) {setverdict(pass);} //equality, equals + else {setverdict(fail);} + if (not(x1[2]==x2[3])) {setverdict(pass);} //equality, not equals + else {setverdict(fail);} + if (x1[1]!=x3[0]) {setverdict(pass);} //non-equality, not equals + else {setverdict(fail);} + if (not(x1[1]!=x3[1])) {setverdict(pass);} //non-equality, equals + else {setverdict(fail);} } testcase bitstrConcat() runs on bitstrOper_comptype {var bitstring x1,x2,x3,x4,x5,x6,x7,x8; - x1:='0011'B; - x2:='1100'B; - x3:= x1 & x2; - x4:=x1&x2[3]; - x5:=x1[1]&x2; - x6:=x1[2]&x2[1]; - x7:='11111111000000001111111'B; - x8:=x1[0]&x7; - if ((x3=='00111100'B)and(lengthof(x3)==8)) {setverdict(pass);} //string_string - else {setverdict(fail);} - if ((x4=='00110'B)and(lengthof(x4)==5)) {setverdict(pass);} //string_element - else {setverdict(fail);} - if ((x5=='01100'B)and(lengthof(x5)==5)) {setverdict(pass);} //element_string - else {setverdict(fail);} - if ((x6=='11'B)and(lengthof(x6)==2)) {setverdict(pass);} //element_element - else {setverdict(fail);} - if((x8=='011111111000000001111111'B)and(lengthof(x8)==24)) {setverdict(pass);} + x1:='0011'B; + x2:='1100'B; + x3:= x1 & x2; + x4:=x1&x2[3]; + x5:=x1[1]&x2; + x6:=x1[2]&x2[1]; + x7:='11111111000000001111111'B; + x8:=x1[0]&x7; + if ((x3=='00111100'B)and(lengthof(x3)==8)) {setverdict(pass);} //string_string + else {setverdict(fail);} + if ((x4=='00110'B)and(lengthof(x4)==5)) {setverdict(pass);} //string_element + else {setverdict(fail);} + if ((x5=='01100'B)and(lengthof(x5)==5)) {setverdict(pass);} //element_string + else {setverdict(fail);} + if ((x6=='11'B)and(lengthof(x6)==2)) {setverdict(pass);} //element_element + else {setverdict(fail);} + if((x8=='011111111000000001111111'B)and(lengthof(x8)==24)) {setverdict(pass);} else {setverdict(fail);} } @@ -252,7 +252,7 @@ testcase bitstrNot_str() runs on bitstrOper_comptype x1:='01101'B; x2:=not4b(x1); if (x2=='10010'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} log(not4b(x1)); // HQ51603: the generated C++ must compile action(not4b(x1)); // HQ51603 } @@ -263,9 +263,9 @@ testcase bitstrNot_el() runs on bitstrOper_comptype x2:=not4b(x1[1]); x3:=not4b(x1[3]); if (x2=='1'B) {setverdict(pass);} //not "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x3=='0'B) {setverdict(pass);} //not "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAnd_str_str() runs on bitstrOper_comptype @@ -274,7 +274,7 @@ testcase bitstrAnd_str_str() runs on bitstrOper_comptype x2:='00111'B; x3:=x1 and4b x2; if (x3=='00101'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAnd_el_str() runs on bitstrOper_comptype @@ -286,13 +286,13 @@ testcase bitstrAnd_el_str() runs on bitstrOper_comptype x5:=x1[2] and4b '0'B; x6:=x1[3] and4b x2; if (x3=='0'B) {setverdict(pass);} //"0" and "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='0'B) {setverdict(pass);} //"0" and "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='0'B) {setverdict(pass);} //"1" and "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='1'B) {setverdict(pass);} //"1" and "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAnd_str_el() runs on bitstrOper_comptype @@ -304,13 +304,13 @@ testcase bitstrAnd_str_el() runs on bitstrOper_comptype x5:='0'B and4b x1[2]; x6:=x2 and4b x1[3]; if (x3=='0'B) {setverdict(pass);} //"0" and "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='0'B) {setverdict(pass);} //"0" and "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='0'B) {setverdict(pass);} //"1" and "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='1'B) {setverdict(pass);} //"1" and "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrAnd_el_el() runs on bitstrOper_comptype @@ -322,13 +322,13 @@ testcase bitstrAnd_el_el() runs on bitstrOper_comptype x5:=x1[3] and4b x1[0]; x6:=x2[3] and4b x1[3]; if (x3=='0'B) {setverdict(pass);} //"0" and "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='0'B) {setverdict(pass);} //"0" and "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='0'B) {setverdict(pass);} //"1" and "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='1'B) {setverdict(pass);} //"1" and "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrOr_str_str() runs on bitstrOper_comptype @@ -337,7 +337,7 @@ testcase bitstrOr_str_str() runs on bitstrOper_comptype x2:='00111'B; x3:=x1 or4b x2; if (x3=='01111'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrOr_el_str() runs on bitstrOper_comptype @@ -349,13 +349,13 @@ testcase bitstrOr_el_str() runs on bitstrOper_comptype x5:=x1[2] or4b '0'B; x6:=x1[3] or4b x2; if (x3=='0'B) {setverdict(pass);} //"0" or "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='1'B) {setverdict(pass);} //"0" or "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='1'B) {setverdict(pass);} //"1" or "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='1'B) {setverdict(pass);} //"1" or "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrOr_str_el() runs on bitstrOper_comptype @@ -367,13 +367,13 @@ testcase bitstrOr_str_el() runs on bitstrOper_comptype x5:='0'B or4b x1[2]; x6:=x2 or4b x1[3]; if (x3=='0'B) {setverdict(pass);} //"0" or "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='1'B) {setverdict(pass);} //"0" or "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='1'B) {setverdict(pass);} //"1" or "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='1'B) {setverdict(pass);} //"1" or "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrOr_el_el() runs on bitstrOper_comptype @@ -385,13 +385,13 @@ testcase bitstrOr_el_el() runs on bitstrOper_comptype x5:=x1[3] or4b x1[0]; x6:=x2[3] or4b x1[3]; if (x3=='0'B) {setverdict(pass);} //"0" or "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='1'B) {setverdict(pass);} //"0" or "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='1'B) {setverdict(pass);} //"1" or "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='1'B) {setverdict(pass);} //"1" or "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrXor_str_str() runs on bitstrOper_comptype @@ -400,7 +400,7 @@ testcase bitstrXor_str_str() runs on bitstrOper_comptype x2:='00111'B; x3:=x1 xor4b x2; if (x3=='01010'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrXor_el_str() runs on bitstrOper_comptype @@ -412,13 +412,13 @@ testcase bitstrXor_el_str() runs on bitstrOper_comptype x5:=x1[2] xor4b '0'B; x6:=x1[3] xor4b x2; if (x3=='0'B) {setverdict(pass);} //"0" xor "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='1'B) {setverdict(pass);} //"0" xor "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='1'B) {setverdict(pass);} //"1" xor "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='0'B) {setverdict(pass);} //"1" xor "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrXor_str_el() runs on bitstrOper_comptype @@ -430,13 +430,13 @@ testcase bitstrXor_str_el() runs on bitstrOper_comptype x5:='0'B xor4b x1[2]; x6:=x2 xor4b x1[3]; if (x3=='0'B) {setverdict(pass);} //"0" xor "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='1'B) {setverdict(pass);} //"0" xor "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='1'B) {setverdict(pass);} //"1" xor "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='0'B) {setverdict(pass);} //"1" xor "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrXor_el_el() runs on bitstrOper_comptype @@ -448,13 +448,13 @@ testcase bitstrXor_el_el() runs on bitstrOper_comptype x5:=x1[3] xor4b x1[0]; x6:=x2[3] xor4b x1[3]; if (x3=='0'B) {setverdict(pass);} //"0" xor "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x4=='1'B) {setverdict(pass);} //"0" xor "1" - else {setverdict(fail);} + else {setverdict(fail);} if (x5=='1'B) {setverdict(pass);} //"1" xor "0" - else {setverdict(fail);} + else {setverdict(fail);} if (x6=='0'B) {setverdict(pass);} //"1" xor "1" - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrShiftRight1() runs on bitstrOper_comptype @@ -462,7 +462,7 @@ testcase bitstrShiftRight1() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 >> 1; if (x2=='00110'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrShiftRight2() runs on bitstrOper_comptype @@ -470,7 +470,7 @@ testcase bitstrShiftRight2() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 >> 2; if (x2=='00011'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrShiftRightSum() runs on bitstrOper_comptype @@ -478,7 +478,7 @@ testcase bitstrShiftRightSum() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 >> (1+1); if (x2=='00011'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrShiftRightEmpty() runs on bitstrOper_comptype @@ -486,7 +486,7 @@ testcase bitstrShiftRightEmpty() runs on bitstrOper_comptype x1:=''B; x2:=x1 >> 1; if (x2==''B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrShiftLeft1() runs on bitstrOper_comptype @@ -494,7 +494,7 @@ testcase bitstrShiftLeft1() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 << 1; if (x2=='11010'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrShiftLeft2() runs on bitstrOper_comptype @@ -502,7 +502,7 @@ testcase bitstrShiftLeft2() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 << 2; if (x2=='10100'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrShiftLeftSum() runs on bitstrOper_comptype @@ -510,7 +510,7 @@ testcase bitstrShiftLeftSum() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 << (1+1); if (x2=='10100'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrShiftLeftEmpty() runs on bitstrOper_comptype @@ -518,7 +518,7 @@ testcase bitstrShiftLeftEmpty() runs on bitstrOper_comptype x1:=''B; x2:=x1 << 1; if (x2==''B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrRotateRight1() runs on bitstrOper_comptype @@ -526,7 +526,7 @@ testcase bitstrRotateRight1() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 @> 1; if (x2=='10110'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrRotateRight2() runs on bitstrOper_comptype @@ -534,7 +534,7 @@ testcase bitstrRotateRight2() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 @> 2; if (x2=='01011'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrRotateRightSum() runs on bitstrOper_comptype @@ -542,7 +542,7 @@ testcase bitstrRotateRightSum() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 @> (1+1); if (x2=='01011'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrRotateRightEmpty() runs on bitstrOper_comptype @@ -550,7 +550,7 @@ testcase bitstrRotateRightEmpty() runs on bitstrOper_comptype x1:=''B; x2:=x1 @> 1; if (x2==''B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrRotateLeft1() runs on bitstrOper_comptype @@ -558,7 +558,7 @@ testcase bitstrRotateLeft1() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 <@ 1; if (x2=='11010'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrRotateLeft2() runs on bitstrOper_comptype @@ -566,23 +566,23 @@ testcase bitstrRotateLeft2() runs on bitstrOper_comptype x1:='01101'B; x2:=x1 <@ 2; if (x2=='10101'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrRotateLeftSum() runs on bitstrOper_comptype { var bitstring x1,x2; x1:='01101'B; - x2:=x1 <@ (1+1); + x2:=x1 <@ (1+1); if (x2=='10101'B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } testcase bitstrRotateLeftEmpty() runs on bitstrOper_comptype { var bitstring x1,x2; x1:=''B; - x2:=x1 <@ 1; + x2:=x1 <@ 1; if (x2==''B) {setverdict(pass);} - else {setverdict(fail);} + else {setverdict(fail);} } type bitstring mybstr1 @@ -733,57 +733,144 @@ testcase tc_bitstrIndexMistakes() runs on bitstrOper_comptype { setverdict(pass, "Expected DTE: ", e) } } - control - { - const bitstring cl_1:='1000'B; - var bitstring vl_1; - execute(bitstrAssign()); - execute(bitstrAssignElem10()); - execute(bitstrAssignElem01()); - execute(bitstrAssignElem00()); - execute(bitstrAssignElem11()); - execute(bitstrAssignElemAdd()); - execute(bitstrLengthof()); - execute(bitstrConst()); - execute(bitstrComp_str_str()); - execute(bitstrComp_el_str()); - execute(bitstrComp_str_el()); - execute(bitstrComp_el_el()); - execute(bitstrConcat()); - execute(bitstrNot_str()); - execute(bitstrNot_el()); - execute(bitstrAnd_str_str()); - execute(bitstrAnd_el_str()); - execute(bitstrAnd_str_el()); - execute(bitstrAnd_el_el()); - execute(bitstrOr_str_str()); - execute(bitstrOr_el_str()); - execute(bitstrOr_str_el()); - execute(bitstrOr_el_el()); - execute(bitstrXor_str_str()); - execute(bitstrXor_el_str()); - execute(bitstrXor_str_el()); - execute(bitstrXor_el_el()); - execute(bitstrShiftRight1()); - execute(bitstrShiftRight2()); - execute(bitstrShiftRightSum()); - execute(bitstrShiftRightEmpty()); - execute(bitstrShiftLeft1()); - execute(bitstrShiftLeft2()); - execute(bitstrShiftLeftSum()); - execute(bitstrShiftLeftEmpty()); - execute(bitstrRotateRight1()); - execute(bitstrRotateRight2()); - execute(bitstrRotateRightSum()); - execute(bitstrRotateRightEmpty()); - execute(bitstrRotateLeft1()); - execute(bitstrRotateLeft2()); - execute(bitstrRotateLeftSum()); - execute(bitstrRotateLeftEmpty()); - execute(bitstrSubtypes('0'B)); - execute(bitstrIsvalue()); - execute(bitstrIsbound()); - execute(tc_bitstrUninit()); - execute(tc_bitstrIndexMistakes()); + +//=== String_Element tests === + +type component CT{ + port BSPort BS + timer T +} + +type port BSPort message { + inout bitstring +} with { extension "internal" } + +function f_bs(in bitstring bs) return bitstring { + return bs; +} + +testcase tc_bs() runs on CT { + var bitstring vl_bs1 := '01'B, vl_bs2; + vl_bs2 := f_bs(vl_bs1[0]); + if( vl_bs2 == '0'B) {setverdict(pass)} else { setverdict(fail)} +} + +//bs in altstep + +altstep as_bs(in bitstring str) runs on CT { + var template bitstring vl_str := ?; + var bitstring r; + [] BS.receive(vl_str) -> value r { if ( r == str) { setverdict(pass) } } + [] T.timeout { setverdict(fail, "timeout")} +} + +testcase tc_altstep_bs() runs on CT { + var bitstring vl_str := '01'B; + connect(self:BS, self:BS); + T.start(1.0); + BS.send(vl_str); + as_bs(vl_str); + T.stop; +} + +testcase tc_altstep_bs_idx() runs on CT { + var bitstring vl_str := '01'B + connect(self:BS, self:BS); + T.start(1.0); + BS.send(vl_str[0]); + as_bs(vl_str[0]); + T.stop; +} + +altstep as_bs_template(in template bitstring str) runs on CT { + var template bitstring vl_str := ?; + var bitstring r; + [] BS.receive(vl_str) -> value r { if ( r == valueof(str)) { setverdict(pass) } } + [] T.timeout { setverdict(fail, "timeout")} +} + +testcase tc_altstep_bs_template() runs on CT { + var template bitstring vl_str := '01'B; + connect(self:BS, self:BS); + T.start(1.0); + BS.send(vl_str); + as_bs_template(vl_str); + T.stop; +} + +testcase tc__value_list_bs() runs on CT { + var bitstring vl_cs1 := '01'B, vl_cs2 + var template bitstring vlt_cs := (vl_cs1[0], vl_cs1[1]); + vl_cs2 := '0'B; + if( match(vl_cs2,vlt_cs)) {setverdict(pass)} else { setverdict(fail)} + vl_cs2 := '1'B; + if( match(vl_cs2,vlt_cs)) {setverdict(pass)} else { setverdict(fail)} +} + +testcase tc__match_bs_idx() runs on CT { + var bitstring vl_cs1 := '01'B; + var template bitstring vlt_cs := ('0'B,'1'B); + if( match(vl_cs1[0],vlt_cs)) {setverdict(pass)} else { setverdict(fail)} +} + +control +{ + const bitstring cl_1:='1000'B; + var bitstring vl_1; + execute(bitstrAssign()); + execute(bitstrAssignElem10()); + execute(bitstrAssignElem01()); + execute(bitstrAssignElem00()); + execute(bitstrAssignElem11()); + execute(bitstrAssignElemAdd()); + execute(bitstrLengthof()); + execute(bitstrConst()); + execute(bitstrComp_str_str()); + execute(bitstrComp_el_str()); + execute(bitstrComp_str_el()); + execute(bitstrComp_el_el()); + execute(bitstrConcat()); + execute(bitstrNot_str()); + execute(bitstrNot_el()); + execute(bitstrAnd_str_str()); + execute(bitstrAnd_el_str()); + execute(bitstrAnd_str_el()); + execute(bitstrAnd_el_el()); + execute(bitstrOr_str_str()); + execute(bitstrOr_el_str()); + execute(bitstrOr_str_el()); + execute(bitstrOr_el_el()); + execute(bitstrXor_str_str()); + execute(bitstrXor_el_str()); + execute(bitstrXor_str_el()); + execute(bitstrXor_el_el()); + execute(bitstrShiftRight1()); + execute(bitstrShiftRight2()); + execute(bitstrShiftRightSum()); + execute(bitstrShiftRightEmpty()); + execute(bitstrShiftLeft1()); + execute(bitstrShiftLeft2()); + execute(bitstrShiftLeftSum()); + execute(bitstrShiftLeftEmpty()); + execute(bitstrRotateRight1()); + execute(bitstrRotateRight2()); + execute(bitstrRotateRightSum()); + execute(bitstrRotateRightEmpty()); + execute(bitstrRotateLeft1()); + execute(bitstrRotateLeft2()); + execute(bitstrRotateLeftSum()); + execute(bitstrRotateLeftEmpty()); + execute(bitstrSubtypes('0'B)); + execute(bitstrIsvalue()); + execute(bitstrIsbound()); + execute(tc_bitstrUninit()); + execute(tc_bitstrIndexMistakes()); + + execute(tc_bs()); + execute(tc_altstep_bs()); + execute(tc_altstep_bs_idx()); + execute(tc_altstep_bs_template()); + execute(tc__value_list_bs()); + execute(tc__match_bs_idx()); } } -- GitLab