From 28d8e8ff6cebfa29540173083a2be8af416420b6 Mon Sep 17 00:00:00 2001 From: pkulkarni <pkulkarni75@gmail.com> Date: Thu, 15 Jun 2017 10:29:52 +0200 Subject: [PATCH] Modifications and improvements to the Discovery testcases DIS/BV/001, DIS/BV/003, DIS/BV/004, DIS/BO/006 and DIS/BI/007 --- LibOneM2M/OneM2M_Functions.ttcn | 99 ++++++++++++++++++++++++++++++++- LibOneM2M/OneM2M_Templates.ttcn | 15 +++++ OneM2M_Testcases.ttcn | 32 +++++------ 3 files changed, 129 insertions(+), 17 deletions(-) diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 3138f58..b49b3b2 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -867,7 +867,104 @@ module OneM2M_Functions { unmap(self:acPort, system:acPort); } //end f_cse_notifyProcedure - + + function f_cse_getResourceAddress_IsNonHierarchical(in template PrimitiveContent p_content) runs on CseTester return boolean { + var boolean v_IsNonHierarchical := false; + var integer i; + var integer v_NoOfSlashes:= -1; + var boolean v_CseScope := f_cse_getResourceAddress_IsScopeCseRelative(); + var boolean v_SpScope:= f_cse_getResourceAddress_IsScopeSpRelative(); + var boolean v_AbsScope:= f_cse_getResourceAddress_IsScopeAbsoluteRelative(); + + if(v_CseScope and PX_UNSTRUCTURED){ + for (i := 0; i < lengthof(p_content.uRIList); i:= i+1){ + if(match (p_content.uRIList[i], "/")){ + v_NoOfSlashes:= v_NoOfSlashes+1; + } + } + } else if (v_SpScope and PX_UNSTRUCTURED){ + for (i := 0; i < lengthof(p_content.uRIList); i:= i+1){ + if(match (p_content.uRIList[i], "/")){ + v_NoOfSlashes:= v_NoOfSlashes+1; + } + } + } else if (v_AbsScope and PX_UNSTRUCTURED){ + for (i := 0; i < lengthof(p_content.uRIList); i:= i+1){ + if(match (p_content.uRIList[i], "/")){ + v_NoOfSlashes:= v_NoOfSlashes+1; + } + } + } + + if ( (v_NoOfSlashes == 0) or (v_NoOfSlashes == 1) or (v_NoOfSlashes == 3)){ + v_IsNonHierarchical := true; + } + + return v_IsNonHierarchical; + } + + function f_cse_getResourceAddress_IsHierarchical(in template PrimitiveContent p_content) runs on CseTester return boolean { + var boolean v_IsHierarchical := false; + var integer i; + var integer v_NoOfSlashes:= -1; + var boolean v_CseScope := f_cse_getResourceAddress_IsScopeCseRelative(); + var boolean v_SpScope:= f_cse_getResourceAddress_IsScopeSpRelative(); + var boolean v_AbsScope:= f_cse_getResourceAddress_IsScopeAbsoluteRelative(); + + if(v_CseScope and (not (PX_UNSTRUCTURED))){ + for (i := 0; i < lengthof(p_content.uRIList); i:= i+1){ + if(match (p_content.uRIList[i], "/")){ + v_NoOfSlashes:= v_NoOfSlashes+1; + } + } + } else if (v_SpScope and (not(PX_UNSTRUCTURED))){ + for (i := 0; i < lengthof(p_content.uRIList); i:= i+1){ + if(match (p_content.uRIList[i], "/")){ + v_NoOfSlashes:= v_NoOfSlashes+1; + } + } + } else if (v_AbsScope and (not (PX_UNSTRUCTURED))){ + for (i := 0; i < lengthof(p_content.uRIList); i:= i+1){ + if(match (p_content.uRIList[i], "/")){ + v_NoOfSlashes:= v_NoOfSlashes+1; + } + } + } + + if ( (v_NoOfSlashes == 1) or (v_NoOfSlashes == 2) or (v_NoOfSlashes == 4)) { + v_IsHierarchical := true; + } + + return v_IsHierarchical; + } + + function f_cse_getResourceAddress_IsScopeCseRelative() runs on CseTester return boolean { + var boolean v_CseScope:= false; + + if (PX_ADDRESSING_FORMAT == e_cseRelative){ + v_CseScope := true; + } + + return v_CseScope; + } + + function f_cse_getResourceAddress_IsScopeSpRelative() runs on CseTester return boolean { + var boolean v_SpScope:= false; + if (PX_ADDRESSING_FORMAT == e_spRelative){ + v_SpScope := true; + } + + return v_SpScope; + } + + function f_cse_getResourceAddress_IsScopeAbsoluteRelative() runs on CseTester return boolean { + var boolean v_AbsScope:= false; + if(PX_ADDRESSING_FORMAT == e_absolute){ + v_AbsScope := true; + } + + return v_AbsScope; + } }//end group helpingFunctions diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index a075372..0f0d393 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -2785,6 +2785,21 @@ module OneM2M_Templates { tokenRequestInformation := * }; + template ResponsePrimitive mw_responseDiscovery := { + responseStatusCode := int2000, + requestIdentifier := ?, + primitiveContent := ?, + to_ := *, + from_ := *, + originatingTimestamp := *, + resultExpirationTimestamp := *, + eventCategory := *, + contentStatus := *, + contentOffset := *, + assignedTokenIdentifiers := *, + tokenRequestInformation := * + }; + template ResponsePrimitive m_responseNotification(ResponseStatusCode p_statusCode, in template(omit) PrimitiveContent p_notification := omit) := { responseStatusCode := p_statusCode, requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000), diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index 5250830..9ce7f6b 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -10324,6 +10324,7 @@ module OneM2M_Testcases { var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; + var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; // Test control @@ -10337,20 +10338,15 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); mcaPort.send(m_request(v_request)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { + [] mcaPort.receive(mw_response(mw_responseDiscovery)){ tc_ac.stop; - if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){ - setverdict(fail, testcasename() & ": URI List Representation not present"); - } - else - { - setverdict(pass, testcasename() & ": URI List Representation available"); - } + setverdict(pass, testcasename() & ": URI List Representation available"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; @@ -10380,6 +10376,7 @@ module OneM2M_Testcases { var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; + var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; // Test control @@ -10393,6 +10390,7 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -10435,6 +10433,7 @@ module OneM2M_Testcases { var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; + var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; // Test control @@ -10448,19 +10447,18 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); v_request := valueof(m_retrieveResourceDiscResTypeFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int2, int1)); mcaPort.send(m_request(v_request)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { + [] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response { tc_ac.stop; - if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){ - setverdict(fail, testcasename() & ": URI List Representation containing unstructured addresses not present"); - } - else - { - setverdict(pass, testcasename() & ": URI List Representation containing unstructured addresses available"); + if (f_cse_getResourceAddress_IsNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent)){ + setverdict(pass, testcasename() & ": Unstructured addresses present in URIList representation"); + } else { + setverdict(fail, testcasename() & ": Unstructured addresses absent in URIList representation"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { @@ -10540,6 +10538,7 @@ module OneM2M_Testcases { var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; + var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; // Test control @@ -10552,7 +10551,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; - v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); v_request := valueof(m_retrieveResourceInvalidFormatOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); mcaPort.send(m_request(v_request)); tc_ac.start; -- GitLab