diff --git a/regression_test/ucharstrOper/TucharstrOper.ttcn b/regression_test/ucharstrOper/TucharstrOper.ttcn index 2c6e367869ed7d23d2ccc243bb9358e976c85e7f..007b085fb0f6b43659a82ca271fd2daa34aee209 100644 --- a/regression_test/ucharstrOper/TucharstrOper.ttcn +++ b/regression_test/ucharstrOper/TucharstrOper.ttcn @@ -46,6 +46,395 @@ function f_ustr1() return myustr7 { else { return c_myustr1 } } +//**** Assign, reassign ***** +//charstr->ucharstr, compile time +testcase tc_ucharstr_assign_comp1() runs on ucharstrOper_comptype { + const universal charstring u1 := "1" + var universal charstring u := u1; + var universal charstring exp := "1" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //check side effect: + u:= "2"; + if (u == "2") { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //Whether value of u1 is untouched + if (u1 == "1") { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + +} + +//ucharstr->ucharstr, compile time +testcase tc_ucharstr_assign_comp2() runs on ucharstrOper_comptype { + const universal charstring u1 := char(1,2,3,4) + var universal charstring u := u1; + var universal charstring exp := char(1,2,3,4) + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //check side effect: + u:= "2"; + if (u == "2") { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //Whether value of u1 is untouched + if (u1 == char(1,2,3,4)) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + +} + +//charstr->ucharstr, run time +testcase tc_ucharstr_assign_runtime1() runs on ucharstrOper_comptype { + var universal charstring u1 := "1" + var universal charstring u := u1; + var universal charstring exp := "1" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //check side effect: + u:= "2"; + if (u == "2") { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //Whether value of u1 is untouched + if (u1 == "1") { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + +} + +//ucharstr->ucharstr, run time +testcase tc_ucharstr_assign_runtime2() runs on ucharstrOper_comptype { + var universal charstring u1 := char(1,2,3,4) + var universal charstring u := u1; + var universal charstring exp := char(1,2,3,4) + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //check side effect: + u:= "2"; + if (u == "2") { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //Whether value of u1 is untouched + if (u1 == char(1,2,3,4)) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + +} + + + +//uninit->ucharstr, run time +testcase tc_ucharstr_assign_runtime3() runs on ucharstrOper_comptype { + var universal charstring u1; //uninit + @try { + var universal charstring u := u1; + setverdict(fail, "This line should not be reached") + } @catch(e){ + setverdict(pass) + } +} + +//uninit->ucharstr, run time +testcase tc_ucharstr_assign_runtime4() runs on ucharstrOper_comptype { + var universal charstring u1; //uninit + var universal charstring u; + @try { + u := u1; + setverdict(fail, "This line should not be reached") + } @catch(e){ + setverdict(pass) + } +} + +//ucharstr[index]->ucharstr, run time +testcase tc_ucharstr_assign_runtime5() runs on ucharstrOper_comptype { + var universal charstring u1 := char(1,2,3,4) & char(5,6,7,8); + var universal charstring u := u1[0]; + var universal charstring exp := char(1,2,3,4) + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //check side effect: + u:= "2"; + if (u == "2") { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //Whether value of u1 is untouched + if (u1 == char(1,2,3,4) & char(5,6,7,8)) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + +} + +//ucharstr->ucharstr[idx], run time +testcase tc_ucharstr_assign_runtime6() runs on ucharstrOper_comptype { + var universal charstring u1 := char(1,2,3,4) & char(5,6,7,8); + var universal charstring u := char(1,1,1,1); + u1[1] := u; + var universal charstring exp := char(1,2,3,4) & char(1,1,1,1) + if (u1 == exp) { + setverdict(pass, u1) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //check side effect: + u:= "2"; + if (u == "2") { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } + //Whether value of u1 is untouched + if (u1 == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//ucharstr[idx], idx too big, run time +testcase tc_ucharstr_assign_runtime7() runs on ucharstrOper_comptype { + var universal charstring u1 := char(1,2,3,4) & char(5,6,7,8); + var universal charstring u; + @try { + u := u1[2]; + setverdict(fail, "This line should not be reached") + } @catch(e){ + setverdict(pass, "Expected DTE: ", e) + } +} + +//ucharstr[idx], idx < 0, run time +testcase tc_ucharstr_assign_runtime8() runs on ucharstrOper_comptype { + var universal charstring u1 := char(1,2,3,4) & char(5,6,7,8); + var universal charstring u; + var integer idx := -129; + @try { + u := u1[idx]; + setverdict(fail, "This line should not be reached") + } @catch(e){ + setverdict(pass, "Expected DTE: ", e) + } +} + +//**** Concat ***** +//concat at compile time, charstr & charstr +testcase tc_ucharstr_concat_comp1() runs on ucharstrOper_comptype { + const universal charstring u1 := "1" + const universal charstring u2 := "2" + var universal charstring u := u1 & u2; + var universal charstring exp := "12" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at compile time, ucharstr & charstr +testcase tc_ucharstr_concat_comp2() runs on ucharstrOper_comptype { + const universal charstring u1 := char(0,1,2,123) & "1" + const universal charstring u2 := "2" + var universal charstring u := u1 & u2; + var universal charstring exp := char(0,1,2,123) & "12" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at compile time, ucharstr & charstr +testcase tc_ucharstr_concat_comp3() runs on ucharstrOper_comptype { + const universal charstring u1 := char(0,1,2,123) & "1" + const universal charstring u2 := "2" & char(1,3,2,124) + var universal charstring u := u1 & u2; + var universal charstring exp := char(0,1,2,123) & "12" & char(1,3,2,124) + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at run time, charstr & charstr +testcase tc_ucharstr_concat_runtime1() runs on ucharstrOper_comptype { + var universal charstring u1 := "1" + var universal charstring u2 := "2" + var universal charstring u := u1 & u2; + var universal charstring exp := "12" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at run time, ucharstr & charstr +testcase tc_ucharstr_concat_runtime2() runs on ucharstrOper_comptype { + var universal charstring u1 := char(0,1,2,123) & "1" + var universal charstring u2 := "2" + var universal charstring u := u1 & u2; + var universal charstring exp := char(0,1,2,123) & "12" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at run time, ucharstr & charstr +testcase tc_ucharstr_concat_runtime3() runs on ucharstrOper_comptype { + var universal charstring u1 := char(0,1,2,123) & "1" + var universal charstring u2 := "2" & char(1,3,2,124) + var universal charstring u := u1 & u2; + var universal charstring exp := char(0,1,2,123) & "12" & char(1,3,2,124) + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at run time, uninit & charstr +testcase tc_ucharstr_concat_runtime4() runs on ucharstrOper_comptype { + var universal charstring u1; + var universal charstring u2 := "2" & char(1,3,2,124) + var universal charstring u; + @try{ + u:= u1 & u2; + setverdict(fail,"This line should not be reached.") + } @catch(e) { + setverdict(pass,"Expected DTE: ",e) + } +} + +//concat at run time, ucharstr & uninit +testcase tc_ucharstr_concat_runtime5() runs on ucharstrOper_comptype { + var universal charstring u1 := char(0,1,2,123) & "1" + var universal charstring u2 ; + var universal charstring u; + @try{ + u:= u1 & u2; + setverdict(fail,"This line should not be reached.") + } @catch(e) { + setverdict(pass,"Expected DTE: ",e) + } +} + +//concat at run time, ucharstr[idx] & charstr[idx] +testcase tc_ucharstr_concat_runtime6() runs on ucharstrOper_comptype { + var universal charstring u1 := char(0,1,2,123) & "1" + var universal charstring u2 := "2" & char(1,3,2,124) + var universal charstring u := u1[0] & u2[1]; + var universal charstring exp := char(0,1,2,123) & char(1,3,2,124) + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at run time, ucharstr & ucharstr[idx] +testcase tc_ucharstr_concat_runtime7() runs on ucharstrOper_comptype { + var universal charstring u1 := char(0,1,2,123) & "1" + var universal charstring u2 := "2" & char(1,3,2,124) + var universal charstring u := u1 & u2[1]; + var universal charstring exp := char(0,1,2,123) & "1" & char(1,3,2,124) + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} +//concat at run time, ucharstr[idx] & ucharstr +testcase tc_ucharstr_concat_runtime8() runs on ucharstrOper_comptype { + var universal charstring u1 := char(0,1,2,123) & "1" + var universal charstring u2 := "2" & char(1,3,2,124) + var universal charstring u := u1[0] & u2; + var universal charstring exp := char(0,1,2,123) & "2" & char(1,3,2,124) + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at run time, ucharstr[idx] & ucharstr[idx] +testcase tc_ucharstr_concat_runtime9() runs on ucharstrOper_comptype { + var universal charstring u1 := "12345" + var universal charstring u2 := "67890" + var universal charstring u := u1[0] & u2[1]; + var universal charstring exp := "17" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//concat at run time, ucharstr & ucharstr[idx] +testcase tc_ucharstr_concat_runtime10() runs on ucharstrOper_comptype { + var universal charstring u1 := "12345" + var universal charstring u2 := "67890" + var universal charstring u := u1 & u2[1]; + var universal charstring exp := "123457" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} +//concat at run time, ucharstr[idx] & ucharstr +testcase tc_ucharstr_concat_runtime11() runs on ucharstrOper_comptype { + var universal charstring u1 := "12345" + var universal charstring u2 := "67890" + var universal charstring u := u1[0] & u2; + var universal charstring exp := "167890" + if (u == exp) { + setverdict(pass) + } else { + setverdict(fail,"expected ", exp, " got ",u); + } +} + +//***** Subtypes **** testcase ucharstrSubtypes() runs on ucharstrOper_comptype { var template myustr2 vt_myustr1 := char(0, 0, 0, 1) // Value range. var template myustr3 vt_myustr2 := vt_myustr1 // Value list. @@ -66,22 +455,26 @@ testcase ucharstrSubtypes() runs on ucharstrOper_comptype { testcase ucharstrIsvalue() runs on ucharstrOper_comptype { var universal charstring us := "foo"; + var universal charstring us1 := char(0, 0, 0, 0) var universal charstring un; var template universal charstring ust := "bar"; if ( isvalue(us) ) { setverdict(pass); } else { setverdict(fail); }; + if ( isvalue(us1) ) { setverdict(pass); } else { setverdict(fail); }; if ( isvalue(un) ) { setverdict(fail); } else { setverdict(pass); }; if ( isvalue(ust) ) { setverdict(pass); } else { setverdict(fail); }; } testcase ucharstrIsbound() runs on ucharstrOper_comptype { var universal charstring us := "foo"; + var universal charstring us1 := char(0, 0, 0, 0) var universal charstring un; var template universal charstring ust := "bar"; if ( isbound(un) ) { setverdict(fail); } else { setverdict(pass); }; if ( isbound(un[0]) ) { setverdict(fail); } else { setverdict(pass); }; if ( isbound(us) ) { setverdict(pass); } else { setverdict(fail); }; + if ( isbound(us1) ) { setverdict(pass); } else { setverdict(fail); }; if ( isbound(ust) ) { setverdict(pass); } else { setverdict(fail); }; } @@ -213,6 +606,30 @@ control { var universal charstring vl_1 := char(0, 0, 0, 0) var universal charstring vl_2 := "abcxyz" + execute(tc_ucharstr_assign_comp1()); + execute(tc_ucharstr_assign_comp2()); + execute(tc_ucharstr_assign_runtime1()); + execute(tc_ucharstr_assign_runtime2()); + execute(tc_ucharstr_assign_runtime3()); + execute(tc_ucharstr_assign_runtime4()); + execute(tc_ucharstr_assign_runtime5()); + execute(tc_ucharstr_assign_runtime6()); + execute(tc_ucharstr_assign_runtime7()); + execute(tc_ucharstr_assign_runtime8()); + execute(tc_ucharstr_concat_comp1()); + execute(tc_ucharstr_concat_comp2()); + execute(tc_ucharstr_concat_comp3()); + execute(tc_ucharstr_concat_runtime1()); + execute(tc_ucharstr_concat_runtime2()); + execute(tc_ucharstr_concat_runtime3()); + execute(tc_ucharstr_concat_runtime4()); + execute(tc_ucharstr_concat_runtime5()); + execute(tc_ucharstr_concat_runtime6()); + execute(tc_ucharstr_concat_runtime7()); + execute(tc_ucharstr_concat_runtime8()); + execute(tc_ucharstr_concat_runtime9()); + execute(tc_ucharstr_concat_runtime10()); + execute(tc_ucharstr_concat_runtime11()); execute(ucharstrSubtypes()); execute(ucharstrIsvalue()); execute(ucharstrIsbound());