X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=regression_test%2FucharstrOper%2Fcstr_content.ttcn;h=fdc797a0b3c12e06f194d17e5753b458f569180f;hb=a38c6d4c92d78d84a8c44543ee3a890e50432e35;hp=f93552cd59eb5d28aed41fb1cb322f4083f76c33;hpb=854bcf9644df495ca89cbe85dce4ec85ba7986d9;p=deliverable%2Ftitan.core.git diff --git a/regression_test/ucharstrOper/cstr_content.ttcn b/regression_test/ucharstrOper/cstr_content.ttcn index f93552c..fdc797a 100644 --- a/regression_test/ucharstrOper/cstr_content.ttcn +++ b/regression_test/ucharstrOper/cstr_content.ttcn @@ -367,6 +367,41 @@ testcase tc_unichar_utf8_template() runs on empty { else { setverdict(fail, valueof(t_u1ch), "!=", valueof(t_u1)); } } +// Fixed indexing errors when the string only contained ASCII characters (HT70680) +function f_changeUnichar(in universal charstring pl_char) +return universal charstring +{ + log("lengthof(pl_char): ", lengthof(pl_char)) + log("pl_char: ", pl_char); // garbage here + return pl_char; +} + +function f_modifyUnichar(in universal charstring pl_str) +return universal charstring +{ + var integer vl_size := lengthof(pl_str); + var universal charstring vl_tmp; + + for (var integer vl_i := 0; vl_i < vl_size; vl_i := vl_i + 1) + { + log("pl_str[vl_i]: ", pl_str[vl_i]) + vl_tmp := f_changeUnichar(pl_str[vl_i]); + log("vl_tmp: ", vl_tmp); // garbage here + pl_str[vl_i] := vl_tmp; // segmentation fault here + } + + return pl_str; +} + +testcase tc_indexing_HT70680() runs on empty +{ + // must contain only ASCII characters + var universal charstring v_str := "alma123"; + var universal charstring v_res := f_modifyUnichar(v_str); + if (v_str == v_res) { setverdict(pass); } + else { setverdict(fail, "got: ", v_res, " expected: ", v_str); } +} + control { execute(tc_charstring_content()); @@ -378,6 +413,7 @@ control { //execute(tc_unichar_utf8_mp1()); //execute(tc_unichar_utf8_mp2()); execute(tc_unichar_utf8_template()); + execute(tc_indexing_HT70680()); } }