From 9c9cc5f6a3689e4dfd9438fa2ba1bad1149b7fc4 Mon Sep 17 00:00:00 2001 From: reinaortega <miguelangel.reinaortega@etsi.org> Date: Wed, 14 Mar 2018 22:09:40 +0100 Subject: [PATCH] AE testing - Correct handling of CREATE Requests from AE Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org> --- LibOneM2M/OneM2M_Functions.ttcn | 56 ++++++++++++++++++++++---------- OneM2M_PermutationFunctions.ttcn | 20 +++++------- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 575401f..5e03234 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -2377,11 +2377,10 @@ module OneM2M_Functions { function f_ae_preamble_registerAe(template UtTriggerPrimitive p_utRequest := m_create) runs on CseSimu return integer { var MsgIn v_request; - var PrimitiveContent v_modifiedResource; - var integer v_resourceIndex, v_parentIndex; - var RequestPrimitive v_rp; + var integer v_localResourceIndex, v_parentIndex; var charstring v_action := "Please, register the AE on the Tester"; - + + p_utRequest.to_ := f_getLocalResourceAddress(-,-,-); if(not(ispresent(p_utRequest.primitiveContent))) { p_utRequest.primitiveContent.aE := m_contentCreateAe(omit, omit, omit, omit); } @@ -2393,18 +2392,10 @@ module OneM2M_Functions { [] mcaPortIn.receive(mw_request(mw_createAe)) -> value v_request { tc_ac.stop; - v_rp := v_request.primitive.requestPrimitive; - v_parentIndex := f_getResourceIndex(v_rp.to_); - v_modifiedResource := f_ae_generateLocalResource(v_rp.primitiveContent, v_parentIndex, v_rp.resourceType); - v_resourceIndex := f_setLocalResource(v_modifiedResource, int2, v_parentIndex); - if(v_resourceIndex != -1) { - mcaPortIn.send(m_response(m_responsePrimitive_content(int2001, v_rp.requestIdentifier, v_modifiedResource))); - setverdict(pass, __SCOPE__&":INFO: Application registered successfuly"); - } - else { - mcaPortIn.send(m_response(m_responsePrimitive(int5000, v_request.primitive.requestPrimitive.requestIdentifier))); - setverdict(inconc, __SCOPE__&":INFO: AE registration failed"); - } + v_localResourceIndex := f_processCreateRequestPrimitive(v_request.primitive.requestPrimitive); + + mcaPortIn.send(m_response(vc_response.primitive.responsePrimitive)); + } [] tc_ac.timeout { @@ -2415,7 +2406,7 @@ module OneM2M_Functions { f_checkCseSimuStatus(); - return v_resourceIndex; + return v_localResourceIndex; }//end function f_ae_preamble_register @@ -2531,7 +2522,7 @@ module OneM2M_Functions { // Error return p_resource; } - + } // end helpingFunctions group altstepFunctions { @@ -3304,6 +3295,35 @@ module OneM2M_Functions { } // end f_getAnnouncedResourceType + + /** + * @desc Proccessing of the request primitive + * @param p_request Request primitive to be processed + * @return p_response Response primitive to be sent back + */ + function f_processCreateRequestPrimitive(in RequestPrimitive p_request) runs on CseSimu return integer { + var integer v_parentIndex := -1; + var integer v_localResourceIndex := -1; + var PrimitiveContent v_localResource; + + v_parentIndex := f_getResourceIndex(p_request.to_); + if(v_parentIndex == -1) { + setverdict(inconc,__SCOPE__&": ERROR: Target resource not found"); + vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(int4004,p_request.requestIdentifier)); + + } else { + setverdict(pass, __SCOPE__&":INFO: Resource created successfuly"); + v_localResource := f_ae_generateLocalResource(p_request.primitiveContent, v_parentIndex, p_request.resourceType); + v_localResourceIndex := f_setLocalResource(v_localResource, p_request.resourceType, v_parentIndex); + + vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(int2001,p_request.requestIdentifier)); + vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource; + } + vc_response.primitive.responsePrimitive.from_ := PX_CSE1_ID; + vc_response.primitive.responsePrimitive.to_ := p_request.from_; + + return v_localResourceIndex; + } }//end group getSetFunctions diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 97a498d..ebbf250 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -242,7 +242,7 @@ module OneM2M_PermutationFunctions { f_cf03Up(); //Send Trigger Message - v_localResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), -1, int3); + v_localResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_auxInteger := f_setLocalResource(v_localResource, int3); v_utRequestTemplate := m_utRetrieveResource(f_getLocalResourceAddress(v_auxInteger, e_nonHierarchical, p_primitiveScope),"UNINITIALIZED"); f_sendUtPrimitive(v_utRequestTemplate,v_action); @@ -289,7 +289,7 @@ module OneM2M_PermutationFunctions { f_cf03Up(); //Send Trigger Message - v_localResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), -1, int3); + v_localResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_auxInteger := f_setLocalResource(v_localResource, int3); v_utRequestTemplate := m_utRetrieveResource(f_getLocalResourceAddress(v_auxInteger, e_hierarchical, p_primitiveScope),"UNINITIALIZED"); v_utRequest := valueof(v_utRequestTemplate); @@ -340,7 +340,7 @@ module OneM2M_PermutationFunctions { f_cf03Up(); //Send Trigger Message - v_localResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), -1, int3); + v_localResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_auxInteger := f_setLocalResource(v_localResource, int3); v_utRequest.to_ := f_getLocalResourceAddress(v_auxInteger, e_nonHierarchical, p_primitiveScope); v_utRequest.from_ := "UNINITIALIZED"; @@ -386,7 +386,7 @@ module OneM2M_PermutationFunctions { f_cf03Up(); //Send Trigger Message - v_localResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), -1, int3); + v_localResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_auxInteger := f_setLocalResource(v_localResource, int3); v_utRequest.to_ := f_getLocalResourceAddress(v_auxInteger, e_hierarchical, p_primitiveScope); v_utRequest.from_ := "UNINITIALIZED"; @@ -583,14 +583,10 @@ module OneM2M_PermutationFunctions { [] mcaPortIn.receive(mw_request(p_expectedUpdateRequest)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__, " : AE update request is accepted!"); - v_parentIndex := f_getResourceIndex(v_request.primitive.requestPrimitive.to_); - v_modifiedResource := f_ae_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, v_parentIndex, v_request.primitive.requestPrimitive.resourceType); - v_resourceIndex := f_setLocalResource(v_modifiedResource, v_request.primitive.requestPrimitive.resourceType, v_parentIndex); - if(v_resourceIndex != -1) { - mcaPortIn.send(m_response(m_responsePrimitive_content(int2004, v_request.primitive.requestPrimitive.requestIdentifier, v_modifiedResource))); - } - //send back responsePrimitive - //mcaPortIn.send(m_response(v_responsePrimitive)); + + v_resourceIndex := f_processCreateRequestPrimitive(v_request.primitive.requestPrimitive); + + mcaPortIn.send(m_response(v_responsePrimitive)); } [] mcaPortIn.receive(mw_request(?)) -> value v_request { tc_ac.stop; -- GitLab