Sync with 5.3.0
[deliverable/titan.core.git] / regression_test / ucharstrOper / cstr_content.ttcn
index f93552cd59eb5d28aed41fb1cb322f4083f76c33..fdc797a0b3c12e06f194d17e5753b458f569180f 100644 (file)
@@ -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());
 }
 
 }
This page took 0.025747 seconds and 5 git commands to generate.