diff --git a/regression_test/ucharstrOper/TucharstrOper.ttcn b/regression_test/ucharstrOper/TucharstrOper.ttcn index 007b085fb0f6b43659a82ca271fd2daa34aee209..9fc600940b9c3c5d2a7c301ed41a066fe3d68631 100644 --- a/regression_test/ucharstrOper/TucharstrOper.ttcn +++ b/regression_test/ucharstrOper/TucharstrOper.ttcn @@ -57,7 +57,7 @@ testcase tc_ucharstr_assign_comp1() runs on ucharstrOper_comptype { } else { setverdict(fail,"expected ", exp, " got ",u); } - //check side effect: + //check side effect: u:= "2"; if (u == "2") { setverdict(pass) @@ -600,6 +600,87 @@ testcase ucharstr_Bug520457() runs on ucharstrOper_comptype { setverdict(pass); } +// === String_Element tests === + +type component CT{ + port UCSPort UCS + timer T +} + +type port UCSPort message { + inout universal charstring +} with { extension "internal" } + +// String_Element in func. arg. +function f_ucs(in universal charstring ucs) return universal charstring { + return ucs; +} + +testcase tc_ucs() runs on CT { + var universal charstring vl_ucs1 := char(0,0,0,1) & char(0,0,0,20), vl_ucs2 + vl_ucs2 := f_ucs(vl_ucs1[1]); + if( vl_ucs2 == char(0,0,0,20)) {setverdict(pass)} else { setverdict(fail)} +} + +//ucs / altstep + +altstep as_ucs(in universal charstring str) runs on CT { + var template universal charstring vl_str := ? + var universal charstring r; + [] UCS.receive(vl_str) -> value r { if ( r == str) { setverdict(pass) } } + [] T.timeout { setverdict(fail, "timeout")} +} + +testcase tc_altstep_ucs() runs on CT { + var universal charstring vl_str := char(0,0,0,1) & char(0,0,0,20); + connect(self:UCS, self:UCS); + T.start(1.0); + UCS.send(vl_str); + as_ucs(vl_str); + T.stop; +} + +testcase tc_altstep_ucs_idx() runs on CT { + var universal charstring vl_str := char(0,0,0,1) & char(0,0,0,20) + T.start(1.0); + connect(self:UCS, self:UCS); + UCS.send(vl_str[0]); //<====== This is compiled for an erroneous code + as_ucs(vl_str[0]); + T.stop; +} + +altstep as_ucs_template(in template universal charstring str) runs on CT { + var template universal charstring vl_str := ?; + var universal charstring r; + [] UCS.receive(vl_str) -> value r { if ( r == valueof(str)) { setverdict(pass) } } + [] T.timeout { setverdict(fail, "timeout")} +} + +testcase tc_altstep_ucs_template() runs on CT { + var template universal charstring vl_str := char(0,0,0,1) & char(0,0,0,20); + connect(self:UCS, self:UCS); + T.start(1.0); + UCS.send(vl_str); + as_ucs_template(vl_str); + T.stop; +} + +testcase tc__value_list_ucs() runs on CT { + var universal charstring vl_cs1 := char(0,0,0,1) & char(0,0,0,20), vl_cs2 + var template universal charstring vlt_cs := (vl_cs1[0], vl_cs1[1],vl_cs1); //<====== ok + vl_cs2 := char(0,0,0,1); + if( match(vl_cs2,vlt_cs)) {setverdict(pass)} else { setverdict(fail)} + vl_cs2 := char(0,0,0,20); + if( match(vl_cs2,vlt_cs)) {setverdict(pass)} else { setverdict(fail)} +} + +testcase tc__match_ucs_idx() runs on CT { + var universal charstring vl_cs1 := char(0,0,0,1) & char(0,0,0,20); + var template universal charstring vlt_cs := ( char(0,0,0,1), char(0,0,0,20)); //ok + if( match(vl_cs1[0],vlt_cs)) {setverdict(pass)} else { setverdict(fail)} +} + + control { const universal charstring cl_1 := char(0, 0, 0, 0) const universal charstring cl_2 := "abcxyz" @@ -635,5 +716,12 @@ control { execute(ucharstrIsbound()); execute(CR_TR00018474()); execute(ucharstr_Bug520457()); + + execute(tc_ucs()); + execute(tc_altstep_ucs()); + execute(tc_altstep_ucs_idx()); + execute(tc_altstep_ucs_template()); + execute(tc__value_list_ucs()); + execute(tc__match_ucs_idx()); } } diff --git a/regression_test/ucharstrOper/cstr_content.ttcn b/regression_test/ucharstrOper/cstr_content.ttcn index 946d334f409e5980fbbd51ab5f6368853c4d7d7f..b315c13790987b544e6e496cca1bfa4ee1d223e4 100644 --- a/regression_test/ucharstrOper/cstr_content.ttcn +++ b/regression_test/ucharstrOper/cstr_content.ttcn @@ -410,16 +410,6 @@ testcase tc_indexing_HT70680() runs on empty } -function f_ucs(in universal charstring ucs) return universal charstring { - return ucs; -} - -testcase tc_ucs() runs on empty { - var universal charstring vl_ucs1 := char(0,0,0,1) & char(0,0,0,20), vl_ucs2 - vl_ucs2 := f_ucs(vl_ucs1[1]); - if( vl_ucs2 == char(0,0,0,20)) {setverdict(pass)} else { setverdict(fail)} -} - control { execute(tc_charstring_content()); execute(tc_cpp_test()); @@ -431,7 +421,6 @@ control { execute(tc_unichar_utf8_mp2()); execute(tc_unichar_utf8_template()); execute(tc_indexing_HT70680()); - execute(tc_ucs()); } }