From 537c396dbd535af56bd110cef12e184312d00fd5 Mon Sep 17 00:00:00 2001
From: balaskoa <Jeno.Balasko@ericsson.com>
Date: Fri, 17 Aug 2018 10:04:56 +0200
Subject: [PATCH] Simplified deterministic parameter reference test has been
 added

Signed-off-by: balaskoa <Jeno.Balasko@ericsson.com>
---
 regression_test/recofOper/TrecofParamRef.ttcn | 40 +++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/regression_test/recofOper/TrecofParamRef.ttcn b/regression_test/recofOper/TrecofParamRef.ttcn
index 5a7deb663..08609ff9d 100644
--- a/regression_test/recofOper/TrecofParamRef.ttcn
+++ b/regression_test/recofOper/TrecofParamRef.ttcn
@@ -118,6 +118,45 @@ testcase tc_param_ref_replace() runs on CT_Empty
   else { setverdict(fail, "@6 got: ", v_roi, ", expected: { 0, 1, 7, 6, 5, 4, 3 }"); }
 }
 
+// 3.B Simplified replacing
+//======== Simplified case, deterministic behavior expected: =====
+
+function f_param_ref_replace_1arg(inout RoI p_roi) runs on CT_Empty
+{
+  const RoI c1 := { 7, 6 };
+  const RoI c2 := { 5, 4, 3 };
+
+  p_roi := replace(p_roi, 2, 4, c1);
+
+  if (p_roi == { 0, 1, 7, 6 }) { setverdict(pass); } //ok
+  else { setverdict(fail, "@1 got: ", p_roi, ", expected: { 0, 1, 7, 6 }"); }
+//
+//  if (log2str(p_roi[5]) == "<unbound>") { setverdict(pass); }
+//  else { setverdict(fail, "@2 got: ", p_roi[5], ", expected: <unbound>"); } //nok!!!
+
+  p_roi[5] := 20;
+
+  if (log2str(p_roi) == "{ 0, 1, 7, 6, <unbound>, 20 }") { setverdict(pass); }
+  else { setverdict(fail, "@3 got: ", p_roi, ", expected: { 0, 1, 7, 6, <unbound>, 20 }"); }
+
+  p_roi := replace(p_roi, 4, 2, c2);
+  
+  if (p_roi == { 0, 1, 7, 6, 5, 4, 3 }) { setverdict(pass); }
+  else { setverdict(fail, "@4 got: ", p_roi, ", expected: { 0, 1, 7, 6, 5, 4, 3 }"); }
+
+  if (p_roi[5] == 4) { setverdict(pass); }
+  else { setverdict(fail, "@5 got: ", p_roi[5], ", expected: 4"); }
+}
+
+//There is no expected sideeffect
+testcase tc_param_ref_replace_1arg() runs on CT_Empty
+{
+  var RoI v_roi := { 0, 1, 2, 3, 4, 5 };
+  f_param_ref_replace_1arg(v_roi);
+  
+  if (log2str(v_roi) == "{ 0, 1, 7, 6, 5, 4, 3 }") { setverdict(pass); }
+  else { setverdict(fail, "@6 got: ", v_roi, ", expected: { 0, 1, 7, 6, 5, 4, 3 }"); }
+}
 // 4. JSON decoding
 type record of integer RoI_json with { encode "JSON" };
 
@@ -695,6 +734,7 @@ control {
   execute(tc_param_ref_assign());
   execute(tc_param_ref_concat());
   execute(tc_param_ref_replace());
+  execute(tc_param_ref_replace_1arg());
 
   execute(tc_param_ref_json());
   execute(tc_param_ref_xer());
-- 
GitLab