From 1859e10fc79474a4a311da4ab86cd03fa0d7ba1d Mon Sep 17 00:00:00 2001 From: pkulkarni <pkulkarni75@gmail.com> Date: Thu, 15 Jun 2017 14:42:21 +0200 Subject: [PATCH] Further improvements to DISCOVERY testcases --- LibOneM2M/OneM2M_Functions.ttcn | 132 ++++++++++++-------------------- LibOneM2M/OneM2M_Templates.ttcn | 2 +- OneM2M_Testcases.ttcn | 6 +- 3 files changed, 54 insertions(+), 86 deletions(-) diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index b49b3b2..f16bf95 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -868,102 +868,70 @@ module OneM2M_Functions { } //end f_cse_notifyProcedure - function f_cse_getResourceAddress_IsNonHierarchical(in template PrimitiveContent p_content) runs on CseTester return boolean { - var boolean v_IsNonHierarchical := false; + function f_isNonHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean { 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; - } + var integer v_nbOfSlashes:= 0; + + for (i := 0; i < lengthof(p_resourceAddress); i:= i+1){ + if(match (p_resourceAddress[i], "/")){ + v_nbOfSlashes:= v_nbOfSlashes+1; + } + } + + if(f_isScopeCseRelative(p_resourceAddress)) { + if(v_nbOfSlashes == 0 ) { + return true; + } else { + return false; } - } 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 (f_isScopeSpRelative(p_resourceAddress)){ + if(v_nbOfSlashes == 2 ) { + return true; + } else { + return false; } - } 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; - } + } else if (f_isScopeAbsolute(p_resourceAddress)){ + if(v_nbOfSlashes == 4 ) { + return true; + } else { + return false; } + } else { + return false; } - - 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_isHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean { + if(f_isNonHierarchical(p_resourceAddress)) { + return false; + } else { + return true; + } } - function f_cse_getResourceAddress_IsScopeCseRelative() runs on CseTester return boolean { - var boolean v_CseScope:= false; - - if (PX_ADDRESSING_FORMAT == e_cseRelative){ - v_CseScope := true; + function f_isScopeCseRelative(XSD.ID p_resourceAddress) runs on Tester return boolean { + if (p_resourceAddress[0] != "/") { + return true; + } else { + return false; } - - 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_isScopeSpRelative(XSD.ID p_resourceAddress) runs on Tester return boolean { + if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] != "/")){ + return true; + } else { + return false; + } } - 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; + function f_isScopeAbsolute(XSD.ID p_resourceAddress) runs on Tester return boolean { + if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] == "/")) { + return true; + } else { + return false; + } } }//end group helpingFunctions diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 0f0d393..a9809ab 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -2788,7 +2788,7 @@ module OneM2M_Templates { template ResponsePrimitive mw_responseDiscovery := { responseStatusCode := int2000, requestIdentifier := ?, - primitiveContent := ?, + primitiveContent := {uRIList := ?}, to_ := *, from_ := *, originatingTimestamp := *, diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index 9ce7f6b..5e5551b 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -10396,9 +10396,9 @@ module OneM2M_Testcases { 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)){ + if(sizeof(v_response.primitive.responsePrimitive.primitiveContent.uRIList) == 0){ setverdict(pass, testcasename() & ": No Content is present"); } else @@ -10455,7 +10455,7 @@ module OneM2M_Testcases { [] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response { tc_ac.stop; - if (f_cse_getResourceAddress_IsNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent)){ + if (f_isNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRIList[0])){ setverdict(pass, testcasename() & ": Unstructured addresses present in URIList representation"); } else { setverdict(fail, testcasename() & ": Unstructured addresses absent in URIList representation"); -- GitLab