diff --git a/regression_test/charstrOper/TcharstrOper.ttcn b/regression_test/charstrOper/TcharstrOper.ttcn index b122b81ea94caca471684866675f0016509e8c93..f7f0bf757b196f538272c1fdfe83c399aecb6966 100644 --- a/regression_test/charstrOper/TcharstrOper.ttcn +++ b/regression_test/charstrOper/TcharstrOper.ttcn @@ -28,25 +28,25 @@ testcase charstrAssign() runs on charstrOper_comptype x3:=""; x4:="ab123"; if (x1=="ABCD") {setverdict(pass);} //at declaration, with value - else {setverdict(fail);} + else {setverdict(fail);} if (x5=="ABCD") {setverdict(pass);} //at declaration, with variable - else {setverdict(fail);} + else {setverdict(fail);} if (x2=="1234") {setverdict(pass);} //later, with value - else {setverdict(fail);} + else {setverdict(fail);} if (x6=="1234") {setverdict(pass);} //later, with variable - else {setverdict(fail);} + else {setverdict(fail);} if (x3=="") {setverdict(pass);} //empty string - else {setverdict(fail);} + else {setverdict(fail);} if (x4=="ab123") {setverdict(pass);} //change of size - else {setverdict(fail);} + else {setverdict(fail);} } -// testcase charstrAssignQuote() runs on charstrOper_comptype -//{ var charstring x1; -// x1:="ab""12"; -// if ((x1=="ab""12")) {setverdict(pass);} -// else {setverdict(fail);} -//} +testcase charstrAssignQuote() runs on charstrOper_comptype +{ var charstring x1; + x1:="ab""12"; + if ((x1=="ab""12")) {setverdict(pass);} + else {setverdict(fail);} +} testcase charstrAssignElem() runs on charstrOper_comptype @@ -63,17 +63,17 @@ testcase charstrAssignElem() runs on charstrOper_comptype x4[1]:=x5[2]; x6[6]:="B"; if (x5[1]=="b") {setverdict(pass);} //accessing an element - else {setverdict(fail);} + else {setverdict(fail);} if (x3=="b") {setverdict(pass);} //change string to element - else {setverdict(fail);} + else {setverdict(fail);} if (x1=="AbAAAA") {setverdict(pass);} //change element to value - else {setverdict(fail);} + else {setverdict(fail);} if (x4=="AcAAAA") {setverdict(pass);} //change element to element - else {setverdict(fail);} + else {setverdict(fail);} if (x2=="AAbAAA") {setverdict(pass);} //change element to string - else {setverdict(fail);} + else {setverdict(fail);} if (x6=="AAAAAAB") {setverdict(pass);} //add element to string - else {setverdict(fail);} + else {setverdict(fail);} } testcase charstrLengthof() runs on charstrOper_comptype @@ -88,19 +88,19 @@ testcase charstrLengthof() runs on charstrOper_comptype x4:="ab123"; x5[4]:="e"; if (lengthof(x1)==4) {setverdict(pass);} //at declaration, with value - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x6)==4) {setverdict(pass);} //at declaration, with variable - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x2)==4) {setverdict(pass);} //later, with value - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x7)==4) {setverdict(pass);} //later, with variable - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x3)==0) {setverdict(pass);} //empty string - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x4)==5) {setverdict(pass);} //change of size by assignment - else {setverdict(fail);} + else {setverdict(fail);} if (lengthof(x5)==5) {setverdict(pass);} //change of size by adding element - else {setverdict(fail);} + else {setverdict(fail);} } testcase charstrAssignElemAdd() runs on charstrOper_comptype @@ -114,19 +114,19 @@ testcase charstrAssignElemAdd() runs on charstrOper_comptype x2[6]:=x3; x4[6]:=x5[2]; if ((x1=="AAAAAAb")and(lengthof(x1)==7)) {setverdict(pass);} //add value - else {setverdict(fail);} + else {setverdict(fail);} if ((x2=="AAAAAAb")and(lengthof(x2)==7)) {setverdict(pass);} //add string - else {setverdict(fail);} + else {setverdict(fail);} if ((x4=="AAAAAAc")and(lengthof(x4)==7)) {setverdict(pass);} //add element - else {setverdict(fail);} + else {setverdict(fail);} } testcase charstrConst() runs on charstrOper_comptype { -const charstring TcharstrOper_const3:="klm"; -if (TcharstrOper_const1=="asd1") {setverdict(pass);} //definition part - else {setverdict(fail);} -if (TcharstrOper_const3=="klm") {setverdict(pass);} //testcase - else {setverdict(fail);} + const charstring TcharstrOper_const3:="klm"; + if (TcharstrOper_const1=="asd1") {setverdict(pass);} //definition part + else {setverdict(fail);} + if (TcharstrOper_const3=="klm") {setverdict(pass);} //testcase + else {setverdict(fail);} } testcase charstrCompEq() runs on charstrOper_comptype @@ -136,41 +136,41 @@ testcase charstrCompEq() runs on charstrOper_comptype x3:="cde"; x4:="d"; if (x1==x2) {setverdict(pass);} //string_string - else {setverdict(fail);} + else {setverdict(fail);} if (not(x1==x3)) {setverdict(pass);} //string_string - else {setverdict(fail);} + else {setverdict(fail);} if (x4==x3[1]) {setverdict(pass);} //string_element - else {setverdict(fail);} + else {setverdict(fail);} if (not(x4==x3[0])) {setverdict(pass);} //string_element - else {setverdict(fail);} + else {setverdict(fail);} if (x1=="abc") {setverdict(pass);} //string_value - else {setverdict(fail);} + else {setverdict(fail);} if (not(x1=="aabc")) {setverdict(pass);} //string_value - else {setverdict(fail);} + else {setverdict(fail);} if (x3[1]==x4) {setverdict(pass);} //element_string - else {setverdict(fail);} + else {setverdict(fail);} if (not(x3[2]==x4)) {setverdict(pass);} //element_string - else {setverdict(fail);} + else {setverdict(fail);} if (x1[1]==x2[1]) {setverdict(pass);} //element_element - else {setverdict(fail);} + else {setverdict(fail);} if (not(x1[0]==x2[1])) {setverdict(pass);} //element_element - else {setverdict(fail);} + else {setverdict(fail);} if (x3[2]=="e") {setverdict(pass);} //element_value - else {setverdict(fail);} + else {setverdict(fail);} if (not(x3[2]=="f")) {setverdict(pass);} //element_value - else {setverdict(fail);} + else {setverdict(fail);} if ("abc"==x2) {setverdict(pass);} //value_string - else {setverdict(fail);} + else {setverdict(fail);} if (not("dbc"==x2)) {setverdict(pass);} //value_string - else {setverdict(fail);} + else {setverdict(fail);} if ("d"==x3[1]) {setverdict(pass);} //value_element - else {setverdict(fail);} + else {setverdict(fail);} if (not("k"==x3[1])) {setverdict(pass);} //value_element - else {setverdict(fail);} -// if ("df"=="df") {setverdict(pass);} //value_value -// else {setverdict(fail);} -// if (not("dh"=="df")) {setverdict(pass);} //value_value -// else {setverdict(fail);} + else {setverdict(fail);} + // if ("df"=="df") {setverdict(pass);} //value_value + // else {setverdict(fail);} + // if (not("dh"=="df")) {setverdict(pass);} //value_value + // else {setverdict(fail);} } testcase charstrCompNotEq() runs on charstrOper_comptype @@ -180,43 +180,44 @@ testcase charstrCompNotEq() runs on charstrOper_comptype x3:="cde"; x4:="d"; if (not(x1!=x2)) {setverdict(pass);} //string_string - else {setverdict(fail);} + else {setverdict(fail);} if (x1!=x3) {setverdict(pass);} //string_string - else {setverdict(fail);} + else {setverdict(fail);} if (not(x4!=x3[1])) {setverdict(pass);} //string_element - else {setverdict(fail);} + else {setverdict(fail);} if (x4!=x3[2]) {setverdict(pass);} //string_element - else {setverdict(fail);} + else {setverdict(fail);} if (not(x1!="abc")) {setverdict(pass);} //string_value - else {setverdict(fail);} + else {setverdict(fail);} if (x1!="ab") {setverdict(pass);} //string_value - else {setverdict(fail);} + else {setverdict(fail);} if (not(x3[1]!=x4)) {setverdict(pass);} //element_string - else {setverdict(fail);} + else {setverdict(fail);} if (x1[1]!=x4) {setverdict(pass);} //element_string - else {setverdict(fail);} + else {setverdict(fail);} if (not(x1[1]!=x2[1])) {setverdict(pass);} //element_element - else {setverdict(fail);} + else {setverdict(fail);} if (x1[1]!=x3[1]) {setverdict(pass);} //element_element - else {setverdict(fail);} + else {setverdict(fail);} if (not(x3[2]!="e")) {setverdict(pass);} //element_value - else {setverdict(fail);} + else {setverdict(fail);} if (x3[2]!="F") {setverdict(pass);} //element_value - else {setverdict(fail);} + else {setverdict(fail);} if (not("abc"!=x2)) {setverdict(pass);} //value_string - else {setverdict(fail);} + else {setverdict(fail);} if ("abcD"!=x2) {setverdict(pass);} //value_string - else {setverdict(fail);} + else {setverdict(fail);} if (not("b"!=x1[1])) {setverdict(pass);} //value_element - else {setverdict(fail);} + else {setverdict(fail);} if ("d"!=x1[1]) {setverdict(pass);} //value_element - else {setverdict(fail);} -// if (not("ef"!="ef")) {setverdict(pass);} //value_value -// else {setverdict(fail);} -// if ("d"!="ef") {setverdict(pass);} //value_value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (not("ef"!="ef")) {setverdict(pass);} //value_value + // else {setverdict(fail);} + // if ("d"!="ef") {setverdict(pass);} //value_value + // else {setverdict(fail);} } +// There are no characterstring less and greater operators //testcase charstrCompSmall() runs on charstrOper_comptype //{ var charstring x1,x2,x3,x4,x5; // x1:="cde"; @@ -263,124 +264,124 @@ testcase charstrCompNotEq() runs on charstrOper_comptype testcase charstrConcat() runs on charstrOper_comptype {var charstring x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11; - x1:="ABCD"; - x2:="1234"; - x3:= x1 & x2; - x4:=x1&x2[1]; - x5:=x1[1]&x2; - x6:=x1[0]&x2[1]; - x7:=x1&"1234"; - x8:=x1[1]&"1234"; - x9:="1234"&x1; - x10:="1234"&x1[1]; -// x11:="1234"&"ABCD"; - if ((x3=="ABCD1234")and(lengthof(x3)==8)) {setverdict(pass);} //string&string - else {setverdict(fail);} - if ((x4=="ABCD2")and(lengthof(x4)==5)) {setverdict(pass);} //string&element - else {setverdict(fail);} - if ((x7=="ABCD1234")and(lengthof(x7)==8)) {setverdict(pass);} //string&value - else {setverdict(fail);} - if ((x5=="B1234")and(lengthof(x5)==5)) {setverdict(pass);} //element&string - else {setverdict(fail);} - if ((x6=="A2")and(lengthof(x6)==2)) {setverdict(pass);} //element&element - else {setverdict(fail);} - if ((x8=="B1234")and(lengthof(x8)==5)) {setverdict(pass);} //element&value - else {setverdict(fail);} - if ((x9=="1234ABCD")and(lengthof(x9)==8)) {setverdict(pass);} //value&string - else {setverdict(fail);} - if ((x10=="1234B")and(lengthof(x10)==5)) {setverdict(pass);} //value&element - else {setverdict(fail);} -// if ((x11=="1234ABCD")and(lengthof(x11)==8)) {setverdict(pass);} //value&value -// else {setverdict(fail);} + x1:="ABCD"; + x2:="1234"; + x3:= x1 & x2; + x4:=x1&x2[1]; + x5:=x1[1]&x2; + x6:=x1[0]&x2[1]; + x7:=x1&"1234"; + x8:=x1[1]&"1234"; + x9:="1234"&x1; + x10:="1234"&x1[1]; + // x11:="1234"&"ABCD"; + if ((x3=="ABCD1234")and(lengthof(x3)==8)) {setverdict(pass);} //string&string + else {setverdict(fail);} + if ((x4=="ABCD2")and(lengthof(x4)==5)) {setverdict(pass);} //string&element + else {setverdict(fail);} + if ((x7=="ABCD1234")and(lengthof(x7)==8)) {setverdict(pass);} //string&value + else {setverdict(fail);} + if ((x5=="B1234")and(lengthof(x5)==5)) {setverdict(pass);} //element&string + else {setverdict(fail);} + if ((x6=="A2")and(lengthof(x6)==2)) {setverdict(pass);} //element&element + else {setverdict(fail);} + if ((x8=="B1234")and(lengthof(x8)==5)) {setverdict(pass);} //element&value + else {setverdict(fail);} + if ((x9=="1234ABCD")and(lengthof(x9)==8)) {setverdict(pass);} //value&string + else {setverdict(fail);} + if ((x10=="1234B")and(lengthof(x10)==5)) {setverdict(pass);} //value&element + else {setverdict(fail);} + // if ((x11=="1234ABCD")and(lengthof(x11)==8)) {setverdict(pass);} //value&value + // else {setverdict(fail);} } testcase charstrRotateRight1() runs on charstrOper_comptype { var charstring x1,x2,x3; x1:="ABCDEF"; x2:=x1 @> 1; -// x3:="FABCDE" @> 1; + // x3:="FABCDE" @> 1; if (x2=="FABCDE") {setverdict(pass);} //variable - else {setverdict(fail);} -// if (x3=="FABCDE") {setverdict(pass);} //value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (x3=="FABCDE") {setverdict(pass);} //value + // else {setverdict(fail);} } testcase charstrRotateRight2() runs on charstrOper_comptype { var charstring x1,x2,x3; x1:="ABCDEF"; x2:=x1 @> 2; -// x3:="EFABCD" @> 2; + // x3:="EFABCD" @> 2; if (x2=="EFABCD") {setverdict(pass);} //variable - else {setverdict(fail);} -// if (x3=="EFABCD") {setverdict(pass);} //value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (x3=="EFABCD") {setverdict(pass);} //value + // else {setverdict(fail);} } testcase charstrRotateRightSum() runs on charstrOper_comptype { var charstring x1,x2,x3; x1:="ABCDEF"; x2:=x1 @> (1+1); -// x3:="EFABCD" @> (1+1); + // x3:="EFABCD" @> (1+1); if (x2=="EFABCD") {setverdict(pass);} //variable - else {setverdict(fail);} -// if (x3=="EFABCD") {setverdict(pass);} //value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (x3=="EFABCD") {setverdict(pass);} //value + // else {setverdict(fail);} } testcase charstrRotateRightEmpty() runs on charstrOper_comptype { var charstring x1,x2,x3; x1:=""; x2:=x1 @> 1; -// x3:="" @> 1; + // x3:="" @> 1; if (x2=="") {setverdict(pass);} //variable - else {setverdict(fail);} -// if (x3=="") {setverdict(pass);} //value -//(x3=="") {setverdict(pass);} //value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (x3=="") {setverdict(pass);} //value + //(x3=="") {setverdict(pass);} //value + // else {setverdict(fail);} } testcase charstrRotateLeft1() runs on charstrOper_comptype { var charstring x1,x2,x3; x1:="ABCDEF"; x2:=x1 <@ 1; -// x3:="BCDEFA" <@ 1; + // x3:="BCDEFA" <@ 1; if (x2=="BCDEFA") {setverdict(pass);} //variable - else {setverdict(fail);} -// if (x3=="BCDEFA") {setverdict(pass);} //value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (x3=="BCDEFA") {setverdict(pass);} //value + // else {setverdict(fail);} } testcase charstrRotateLeft2() runs on charstrOper_comptype { var charstring x1,x2,x3; x1:="ABCDEF"; x2:=x1 <@ 2; -// x3:="CDEFAB" <@ 2; + // x3:="CDEFAB" <@ 2; if (x2=="CDEFAB") {setverdict(pass);} //variable - else {setverdict(fail);} -// if (x3=="CDEFAB") {setverdict(pass);} //value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (x3=="CDEFAB") {setverdict(pass);} //value + // else {setverdict(fail);} } testcase charstrRotateLeftSum() runs on charstrOper_comptype { var charstring x1,x2,x3; x1:="ABCDEF"; x2:=x1 <@ (1+1); -// x3:="CDEFAB" <@ (1+1); + // x3:="CDEFAB" <@ (1+1); if (x2=="CDEFAB") {setverdict(pass);} //variable - else {setverdict(fail);} -// if (x3=="CDEFAB") {setverdict(pass);} //value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (x3=="CDEFAB") {setverdict(pass);} //value + // else {setverdict(fail);} } testcase charstrRotateLeftEmpty() runs on charstrOper_comptype { var charstring x1,x2,x3; x1:=""; x2:=x1 <@ 1; -// x3:="" <@ 1; + // x3:="" <@ 1; if (x2=="") {setverdict(pass);} //variable - else {setverdict(fail);} -// if (x3=="") {setverdict(pass);} //value -// else {setverdict(fail);} + else {setverdict(fail);} + // if (x3=="") {setverdict(pass);} //value + // else {setverdict(fail);} } template integer t_mylen1 := 1 @@ -519,12 +520,93 @@ testcase tc_simple_charstring_template_pattern() runs on charstrOper_comptype { if(isbound(vlt_ch)) {setverdict(pass)} else {setverdict(fail)} } +testcase tc_charstring_Uninit() runs on charstrOper_comptype { + var charstring ch1, ch2; + @try { + ch2 := ch1; + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(ch2)) {setverdict(fail)} + } + @try { + ch2 := ch1[0]; + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(ch2)) {setverdict(fail)} + } + @try { + ch2 := ch1 @> 2; + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(ch2)) {setverdict(fail)} + } + @try { + ch2 := ch1 <@ 2; + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(ch2)) {setverdict(fail)} + } + var integer i; + @try { + i := lengthof(ch1); + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(i)) {setverdict(fail)} + } + if (isbound(ch1)) {setverdict(fail)}; +} + +testcase tc_charstring_IndexMistakes() runs on charstrOper_comptype { + var charstring ch1, ch2; + ch1 := "ABC"; + @try { + ch2 := ch1[3]; + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(ch2)) {setverdict(fail)}; + } + var integer i := 1, j:= 2, k; + @try { + ch2 := ch1[i-j]; //runtime negative index + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(ch2)) {setverdict(fail)}; + } + @try { + ch2 := ch1[k]; //runtime uninitialized index + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(ch2)) {setverdict(fail)}; + } + + @try { + ch2[1] := "a"; //runtime pos index of uninit charstr + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + if (isbound(ch2)) {setverdict(fail)}; + } + @try { + ch1[i-j] := "a"; //runtime negative index + setverdict(fail, "This line should not be reached"); + } @catch(e) { + setverdict(pass, "Expected DTE: ", e) + } +} + control { const charstring cl_1:="asd1"; var charstring vl_1; - execute(charstrAssign()); -// execute(charstrAssignQuote()); + execute(charstrAssignQuote()); execute(charstrAssignElem()); execute(charstrLengthof()); execute(charstrAssignElemAdd()); @@ -550,6 +632,8 @@ control { execute(tc_simple_charstring()); execute(tc_simple_charstring_template()); execute(tc_simple_charstring_template_pattern()); + execute(tc_charstring_Uninit()); + execute(tc_charstring_IndexMistakes()); } }