From dfb772103a166b596a271420f8cfc05154711b5a Mon Sep 17 00:00:00 2001
From: Bogdan Stanca-Kaposta <bogdan.stanca-kaposta@spirent.com>
Date: Thu, 12 Jul 2018 16:54:39 -0400
Subject: [PATCH] fix for CSE_REG_RET_010 CSE_REG_RET_009 CSE_REG_CRE_024
 CSE_REG_DEL_004

---
 LibOneM2M/OneM2M_Functions.ttcn     |  4 ++--
 OneM2M_Testcases_CSE_Release_1.ttcn | 30 ++++++++++++++++++-----------
 2 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index a09f204..1ad0f10 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1927,7 +1927,7 @@ module OneM2M_Functions {
 
 				tc_ac.start;
 				alt {
-					[] mccPortIn.receive(mw_request(p_requestPrimitive)) -> value v_request {
+					[not v_remoteCSERegistered] mccPortIn.receive(mw_request(p_requestPrimitive)) -> value v_request {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly");
 						v_remoteCSEResource := f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, vc_cSEBaseIndex, int16);//TODO Get index from v_request.primitive.requestPrimitive.to_
@@ -1942,7 +1942,7 @@ module OneM2M_Functions {
 						vc_remoteCseIndex := f_setResource(valueof(m_primitiveContentRemoteCSE(m_contentMyRemoteCSEResource)), int16, -1);
 						v_resourceIndex := vc_remoteCseIndex;
 						v_remoteCSERegistered:=true;
-						tc_ac.start;
+						tc_ac.start(10.0);
 						repeat;
 					}
 					[] tc_ac.timeout {
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index 753628f..d2d064f 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -1813,6 +1813,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 				function f_CSE_REG_CRE_024() runs on CseSimu {
   
 					// Local variables
+					var MsgIn v_request;
 					var ResponsePrimitive v_responsePrimitive;
 					var template UtTriggerPrimitive v_utRequest := m_utCreateRemoteCSE;
 					var universal charstring v_action :=  __SCOPE__ & ": Please, send a CSE registration request with attributes multiplicity equals to 1";
@@ -1835,12 +1836,12 @@ module OneM2M_Testcases_CSE_Release_1 {
 					// Test Body
 					tc_ac.start;
 					alt {
-						[] mccPortIn.receive(mw_request(mw_createRemoteCSEBase)) {
+						[] mccPortIn.receive(mw_request(mw_createRemoteCSEBase)) -> value v_request {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly");
 							
 							//set responseStatusCode back to SUT
-							v_responsePrimitive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit));
+							v_responsePrimitive := valueof(m_responsePrimitive(int2001, v_request.primitive.requestPrimitive.requestIdentifier, omit));
 
 							//send back responsePrimitive
 							mccPortIn.send(f_getMsgOutPrimitive(m_response(v_responsePrimitive)));
@@ -2735,8 +2736,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 				function f_CSE_REG_RET_009() runs on CseSimu {
 					//Local variables
 					 //Local variables
-					 var MsgIn v_response;
-					 var RequestPrimitive v_request;
+					 var MsgIn v_request;
 					 var ResourceType v_resourceType := int16;	//remoteCSE
 					 var template PrimitiveContent v_contentResponse;
 					 var template UtTriggerPrimitive v_utRequest;
@@ -2762,9 +2762,13 @@ module OneM2M_Testcases_CSE_Release_1 {
 					 
 					 tc_ac.start;
 					 alt {
- 						[] mccPortIn.receive(mw_request(mw_retrieve(f_getResourceAddress()))) -> value v_response {
+ 						[] mccPortIn.receive(mw_request(mw_retrieve(?))) -> value v_request {
 							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ": Retrieve Request received successfully");
+ 							if (f_getResourceIndex(valueof(v_request.primitive.requestPrimitive.to_)) != -1) {
+								setverdict(pass, __SCOPE__ & ": Retrieve Request received successfully");
+ 							} else {
+								setverdict(fail, __SCOPE__ & ": Retrieve Request target address not found");
+ 							}
 						}
 						[] mccPortIn.receive {
 							tc_ac.stop;
@@ -3276,7 +3280,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 				}
 							
 				function f_CSE_REG_DEL_004() runs on CseSimu {
-					//Local variables	
+					//Local variables
+					var MsgIn v_request;
 					var template UtTriggerPrimitive v_utRequest := m_utDelete;
 					var UtTriggerAckPrimitive v_trigger_response;
 					var integer v_auxInteger;
@@ -3297,16 +3302,19 @@ module OneM2M_Testcases_CSE_Release_1 {
 					vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE);
 					
 					//Send Trigger Message
-					v_auxInteger := f_setResource(valueof(m_primitiveContentRemoteCSE(m_contentCreateRemoteCSE(omit,omit,-,-))), int16);
-					v_utRequest.requestPrimitive.to_ := f_getResourceAddress(v_auxInteger);
+					v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(vc_remoteCseIndex);
 					f_sendUtPrimitive(v_utRequest, v_action);	
 
 					// Test Body
 					tc_ac.start;
 					alt {
-						[] mccPortIn.receive(mw_request(mw_delete( f_getResourceAddress(vc_remoteCseIndex), PX_CSE_ID))) {
+						[] mccPortIn.receive(mw_request(mw_delete(?, PX_CSE_ID))) -> value v_request {
 							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ": <remoteCSE> delete request has been received");
+ 							if (f_getResourceIndex(valueof(v_request.primitive.requestPrimitive.to_)) != -1) {
+								setverdict(pass, __SCOPE__ & ": <remoteCSE> delete request has been received");
+ 							} else {
+								setverdict(fail, __SCOPE__ & ": <remoteCSE> delete request target address not found");
+ 							}
 						}
 						[] mccPortIn.receive {
 							tc_ac.stop;
-- 
GitLab