diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index a09f204007ccd2ec0f24d5fbfce5c3fe1b1ffce3..354933d01417c1170a74373ded17b99e362bc91c 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -2392,6 +2392,27 @@ module OneM2M_Functions { tc_ac.start(10.0); repeat; } + [] mccPortIn.receive(mw_request(mw_delete())) -> value v_request { + tc_ac.stop; + log(__SCOPE__&": WARNING: Unexpected DELETE message received"); + + v_localResourceIndex := f_getResourceIndex(v_request.primitive.requestPrimitive.to_); + if(v_localResourceIndex == -1) + { + log(__SCOPE__&": ERROR: Resource Index not valid"); + v_response := valueof(m_responsePrimitive(int4004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response))); + } else { + v_response := valueof(m_responsePrimitive(int2002,v_request.primitive.requestPrimitive.requestIdentifier)); + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response))); + } + tc_ac.start(10.0); + repeat; + } [] mccPortIn.receive (mw_request(?)){ log(__SCOPE__&": WARNING: Unexpected message received"); repeat; diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index a8dd117a68595f474165070fe09b64d3e878f808..bf34ee70a8c4f31d60b02beb537e32860d1fa2e8 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -393,7 +393,8 @@ module OneM2M_PermutationFunctions { f_cf03Up(); - //Send Trigger Mesf_generateLocalResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); + //Send Trigger Message + v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_auxInteger := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_auxInteger, e_hierarchical, p_primitiveScope); f_sendUtPrimitive(v_utRequest,v_action); @@ -500,7 +501,8 @@ module OneM2M_PermutationFunctions { //Test component configuration f_cf03Up(); - //send triggeringf_generateLocalResourcelocalResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); + //send triggering + v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_containerIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_containerIndex, -, -); p_request.to_ := p_utRequest.requestPrimitive.to_; @@ -598,7 +600,8 @@ module OneM2M_PermutationFunctions { //Preamble - //Send Trf_generateLocalResourcelResource := f_ae_generateLocalResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))), vc_cSEBaseIndex, int2); + //Send Tr + v_localResource := f_generateLocalResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))), vc_cSEBaseIndex, int2); v_resourceIndex := f_setLocalResource(v_localResource, int2, vc_cSEBaseIndex); p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_resourceIndex); f_sendUtPrimitive(p_utRequest,p_action); @@ -639,7 +642,8 @@ module OneM2M_PermutationFunctions { //Test component configuration f_cf03Up(); - //send triggering f_generateLocalResourceocalResource := f_ae_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); + //send triggering + v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_resourceIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_resourceIndex); f_sendUtPrimitive(p_utRequest,p_action); @@ -685,19 +689,18 @@ module OneM2M_PermutationFunctions { var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_localResource; var integer v_resourceIndex := -1; - + //Test component configuration f_cf03Up(); - //send triggerinf_generateLocalResource_localResource := f_ae_generateLocalResource(valueof(p_primitiveContent), vc_cSEBaseIndex, p_resourceType); - v_resourceIndex := f_setLocalResource(v_localResource, p_resourceType, vc_cSEBaseIndex); - v_utRequest := m_utRetrieve(f_getLocalResourceAddress(v_resourceIndex)); + //send triggerin + v_utRequest := m_utRetrieve(f_getLocalResourceAddress(vc_cSEBaseIndex)); f_sendUtPrimitive(v_utRequest,p_action); //Test behavior tc_ac.start; alt{ - [] mcaPortIn.receive(mw_request(mw_retrieve(f_getLocalResourceAddress(v_resourceIndex)))) -> value v_request { + [] mcaPortIn.receive(mw_request(mw_retrieve(f_getLocalResourceAddress(vc_cSEBaseIndex)))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__, " : retrieve resource type request is accepted!!"); v_resourceIndex := f_getResourceIndex(v_request.primitive.requestPrimitive.to_); diff --git a/OneM2M_Testcases_AE_Release_1.ttcn b/OneM2M_Testcases_AE_Release_1.ttcn index 5d78b9074c3548f6ec5e9667c044101151ddffd1..ca7fa6cd31c9960467048801d5cf517d7a1364e1 100644 --- a/OneM2M_Testcases_AE_Release_1.ttcn +++ b/OneM2M_Testcases_AE_Release_1.ttcn @@ -1631,8 +1631,10 @@ module OneM2M_Testcases_AE_Release_1 { f_cf03Up(); //send triggering primitive to SUT - v_localResource := f_generateLocalResource(valueof(m_primitiveContentContentInstance(m_contentCreateContentInstance)), vc_cSEBaseIndex, int4); - v_resourceIndex := f_setLocalResource(v_localResource, int4, vc_cSEBaseIndex); + v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); + v_resourceIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); + v_localResource := f_generateLocalResource(valueof(m_primitiveContentContentInstance(m_contentCreateContentInstance)), v_resourceIndex, int4); + v_resourceIndex := f_setLocalResource(v_localResource, int4, v_resourceIndex); v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_resourceIndex); f_sendUtPrimitive(v_utRequest,v_action); diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn index 753628fb1e63288c445143f50e9e123e3c7ede32..b5d907dd378000dae107bc1a9b92b02d57e79390 100644 --- a/OneM2M_Testcases_CSE_Release_1.ttcn +++ b/OneM2M_Testcases_CSE_Release_1.ttcn @@ -1813,7 +1813,11 @@ module OneM2M_Testcases_CSE_Release_1 { function f_CSE_REG_CRE_024() runs on CseSimu { // Local variables - var ResponsePrimitive v_responsePrimitive; + var ResponsePrimitive v_response; + var MsgIn v_request; + var PrimitiveContent v_localResource; + var integer v_parentResourceIndex := -1; + var integer v_localResourceIndex := -1; 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,22 +1839,30 @@ 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)); - - //send back responsePrimitive - mccPortIn.send(f_getMsgOutPrimitive(m_response(v_responsePrimitive))); - } + setverdict(pass, __SCOPE__&":INFO: CREATE remoteCSE request received"); + v_parentResourceIndex := f_getResourceIndex(v_request.primitive.requestPrimitive.to_); + if(v_parentResourceIndex == -1) { + log(__SCOPE__&": ERROR: Target resource not found"); + v_response := valueof(m_responsePrimitive(int4004,v_request.primitive.requestPrimitive.requestIdentifier)); + + } else { + v_localResource := f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, v_parentResourceIndex, v_request.primitive.requestPrimitive.resourceType); + v_localResourceIndex := f_setLocalResource(v_localResource, v_request.primitive.requestPrimitive.resourceType, v_parentResourceIndex); + + v_response := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier)); + v_response.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource; + } + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response))); } [] mccPortIn.receive { tc_ac.stop; - setverdict(inconc, __SCOPE__&":INFO: Unexpected message received"); + setverdict(fail, __SCOPE__&":INFO: Unexpected message received"); } [] tc_ac.timeout { - setverdict(inconc, __SCOPE__&":INFO: No request received for creating resource type remoteCSE"); + setverdict(fail, __SCOPE__&":INFO: No request received for creating resource type remoteCSE"); } } // Postamble @@ -2733,13 +2745,13 @@ 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 ResponsePrimitive v_response; var template PrimitiveContent v_contentResponse; var template UtTriggerPrimitive v_utRequest; + var integer v_localResourceIndex := -1; var universal charstring v_action := __SCOPE__ & ": Please, send a valid RETRIEVE Request containing To set to " & PX_CSE1_ADDRESS; // Test control @@ -2762,9 +2774,24 @@ module OneM2M_Testcases_CSE_Release_1 { tc_ac.start; alt { - [] mccPortIn.receive(mw_request(mw_retrieve(f_getResourceAddress()))) -> value v_response { - tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Retrieve Request received successfully"); + [] mccPortIn.receive(mw_request(mw_retrieve(?))) -> value v_request { + tc_ac.stop; + v_localResourceIndex := f_getResourceIndex(v_request.primitive.requestPrimitive.to_); + if(v_localResourceIndex == -1) + { + log(__SCOPE__&": ERROR: Retrieve request target not found"); + v_response := valueof(m_responsePrimitive(int4004,v_request.primitive.requestPrimitive.requestIdentifier)); + } else if(v_localResourceIndex != vc_remoteCseIndex) { + log(__SCOPE__&": ERROR: Retrieve request target not expected"); + v_response := valueof(m_responsePrimitive(int4004,v_request.primitive.requestPrimitive.requestIdentifier)); + } else { + setverdict(pass, __SCOPE__ & ": Retrieve Request received successfully"); + v_response := valueof(m_responsePrimitive(int2000,v_request.primitive.requestPrimitive.requestIdentifier)); + v_response.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource; + } + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response))); } [] mccPortIn.receive { tc_ac.stop; @@ -3279,7 +3306,10 @@ module OneM2M_Testcases_CSE_Release_1 { //Local variables var template UtTriggerPrimitive v_utRequest := m_utDelete; var UtTriggerAckPrimitive v_trigger_response; + var ResponsePrimitive v_response; var integer v_auxInteger; + var integer v_localResourceIndex := -1; + var MsgIn v_request; var universal charstring v_action := __SCOPE__ & ": Please, send a valid DELETE Request containing To set to " & PX_CSE1_ADDRESS; //Test control @@ -3297,16 +3327,29 @@ 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_getResourceAddress(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))) { - tc_ac.stop; - setverdict(pass, __SCOPE__ & ": <remoteCSE> delete request has been received"); + [] mccPortIn.receive(mw_request(mw_delete(?, PX_CSE_ID))) -> value v_request { + tc_ac.stop; + v_localResourceIndex := f_getResourceIndex(v_request.primitive.requestPrimitive.to_); + if(v_localResourceIndex == -1) + { + log(__SCOPE__&": ERROR: Delete request target not found"); + v_response := valueof(m_responsePrimitive(int4004,v_request.primitive.requestPrimitive.requestIdentifier)); + } else if(v_localResourceIndex != vc_remoteCseIndex) { + log(__SCOPE__&": ERROR: Delete request target not expected"); + v_response := valueof(m_responsePrimitive(int4004,v_request.primitive.requestPrimitive.requestIdentifier)); + } else { + setverdict(pass, __SCOPE__ & ": <remoteCSE> delete request has been received"); + v_response := valueof(m_responsePrimitive(int2002,v_request.primitive.requestPrimitive.requestIdentifier)); + } + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response))); } [] mccPortIn.receive { tc_ac.stop;