diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 5dc376fb7d85069e209c424e749cdceb596b084b..dbaf89c9c8828251f7efb339a96a107d9d851b61 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -86,6 +86,9 @@ module OneM2M_Functions { // Map map(self:mcaPort, system:mcaPort); map(self:acPort, system:acPort); + if(PX_UT_IMPLEMENTED) { + map(self:utPort, system:utPort); + } activate(a_default()); activate(a_cse_cf02_ae1()); vc_cse1.start(f_cf02UpCse1()); @@ -261,6 +264,9 @@ module OneM2M_Functions { unmap(self:mcaPort, system:mcaPort); unmap(self:acPort, system:acPort); + if(PX_UT_IMPLEMENTED){ + unmap(self:utPort, system:utPort); + } unmap(vc_cse1:mccPort, system:mccPort); unmap(vc_cse1:mccPortIn, system:mccPortIn); unmap(vc_cse1:acPort, system:acPort); @@ -1140,10 +1146,6 @@ module OneM2M_Functions { v_responsePrimitive.primitiveContent := vc_localResourcesList[vc_localRemoteCseIndex].resource; mccPortIn.send(m_response(v_responsePrimitive)); } - [] mccPortIn.receive{ - tc_ac.stop; - setverdict(fail, __SCOPE__ & ":ERROR: Unexpected message received"); - } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } @@ -1702,6 +1704,13 @@ module OneM2M_Functions { var integer v_resourceIndex := -1; var template UtTriggerPrimitive v_utRequest := m_utCreateRemoteCSE; var charstring v_action := "Please, send a CSE registration request"; + var integer v_parentIndex := vc_localRemoteCseIndex; + var ResponsePrimitive v_responsePrimitive; + var PrimitiveContent v_announcedResource; + + var PrimitiveContent v_resource; + var integer vc_localResourceIndex := -1; + //send triggering primitive to SUT f_sendUtPrimitive(v_utRequest,v_action); @@ -1721,6 +1730,43 @@ module OneM2M_Functions { mccPortIn.send(m_response(v_response)); v_resourceIndex := f_setResource(v_request.primitive.requestPrimitive.primitiveContent, int16, -1); + tc_ac.start; + repeat; + } + [] mccPortIn.receive(mw_request(mw_create())) -> value v_request { + tc_ac.stop; + v_resource := f_cse_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, vc_cSEBaseIndex, v_request.primitive.requestPrimitive.resourceType);//TODO Get index from v_request.primitive.requestPrimitive.to_ + vc_localResourceIndex := f_setLocalResource(v_resource, v_request.primitive.requestPrimitive.resourceType, vc_cSEBaseIndex); + + v_response := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier)); + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + v_response.primitiveContent := vc_localResourcesList[vc_localResourceIndex].resource; + mccPortIn.send(m_response(v_response)); + tc_ac.start; + repeat; + } + [] mccPortIn.receive(mw_request(mw_retrieve(f_getLocalResourceAddress(-, e_hierarchical, e_spRelative)))) -> value v_request { + tc_ac.stop; + + v_response := valueof(m_responsePrimitive(int2000,v_request.primitive.requestPrimitive.requestIdentifier)); + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + v_response.primitiveContent := vc_localResourcesList[vc_cSEBaseIndex].resource; + mccPortIn.send(m_response(v_response)); + tc_ac.start; + repeat; + } + [] mccPortIn.receive(mw_request(mw_update())) -> value v_request { + tc_ac.stop; + + v_response := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + v_response.primitiveContent := vc_localResourcesList[vc_localRemoteCseIndex].resource; + mccPortIn.send(m_response(v_response)); + //tc_ac.start; + //repeat; } [] mccPortIn.receive { tc_ac.stop; @@ -1729,7 +1775,7 @@ module OneM2M_Functions { [] tc_ac.timeout { setverdict(inconc, __SCOPE__&":INFO: No request received for creating resource type remoteCSE"); } - } + } f_checkCseSimuStatus(); @@ -1860,6 +1906,27 @@ module OneM2M_Functions { v_myResource.contentInstanceAnnc.expirationTime := p_resource.contentInstanceAnnc.expirationTime; v_myResource.contentInstanceAnnc.labels := p_resource.contentInstanceAnnc.labels; } + } else if (p_resourceType == int1 and ispresent (p_resource)) { //Acp Resource + if(ischosen (p_resource.accessControlPolicy)){ + v_myResource.accessControlPolicy := valueof(p_resource.accessControlPolicy); + + if(not(ispresent(p_resource.accessControlPolicy.resourceName))) { + v_myResource.accessControlPolicy.resourceName := "accessControlPolicy" & int2str(v_resourceIndex); + } + + v_myResource.accessControlPolicy.resourceType := p_resourceType; + v_myResource.accessControlPolicy.resourceID := "accessControlPolicy" & int2str(v_resourceIndex); + v_myResource.accessControlPolicy.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.accessControlPolicy.labels := p_resource.accessControlPolicy.labels; + v_myResource.accessControlPolicy.creationTime := fx_generateTimestamp(); + if(not(ispresent(p_resource.accessControlPolicy.expirationTime))) { + v_myResource.accessControlPolicy.expirationTime := "20301231T012345"; + } + v_myResource.accessControlPolicy.lastModifiedTime := v_myResource.accessControlPolicy.creationTime; + v_myResource.accessControlPolicy.announceTo := omit; + v_myResource.accessControlPolicy.announcedAttribute := omit; + + } } return v_myResource; @@ -1904,7 +1971,7 @@ module OneM2M_Functions { */ altstep a_cse_cf02_cse1() runs on CseSimu { - [] mccPortIn.receive { + [] mccPortIn.receive (mw_request(?)){ log(__SCOPE__&": WARNING: Unexpected message received"); repeat; } diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 5a6a28aa4f4257075a83b2d1c645a519a14d0170..da0469b01ea0b99a07c97d23fd68589d730f3b0e 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -391,7 +391,7 @@ module OneM2M_Templates { to_ := p_to, from_ := p_from, requestIdentifier := ?, - resourceType := ?, + resourceType := omit, primitiveContent:= ?, roleIDs := *, originatingTimestamp := *, diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index 51a4ccd3372bae68a3b3e2e7af4270c3351ed8f1..bb3c4eedcd82f98172319625c75ef4f87849dde7 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -77,6 +77,7 @@ module OneM2M_TestSystem { port OneM2MPort mccPort; port OneM2MPort mccPortIn; port AdapterControlPort acPort; + port UpperTesterPort utPort; } type component AeSystem { diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index c333432dc26b54d24551894a631bc9aee646c73c..11f24f75f116444c35528dbc9a05fd078973528a 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -6181,7 +6181,7 @@ module OneM2M_PermutationFunctions { group Basic { - function f_CSE_ANNC_001(ResourceType p_resourceType, template (present) RequestPrimitive p_createRequestAnnc, template(omit) RequestPrimitive p_requestCreatePrimitive := omit, template(omit) RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu { + function f_CSE_ANNC_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu { // Local variables var MsgIn v_response; @@ -6191,7 +6191,7 @@ module OneM2M_PermutationFunctions { var integer v_resourceIndex; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); - v_create.primitiveContent.aE.announceTo := {f_getAnnouncementTargetPoA()}; + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; // Test control @@ -6201,9 +6201,11 @@ module OneM2M_PermutationFunctions { // Test adapter configuration //Register the CSE - vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.start(f_cse_registrationRemoteCse(mw_createRemoteCSE)); vc_cse1.done; + f_sleep(10.0); + //Preamble vc_cse1.start(f_cse_resourceAnnouncementHandler(mw_createAEAnnc(-, -, -))); v_aeIndex := f_cse_createResource(int2,v_create); diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn index 8ce6e979309713388ab746671e55607b0ff09ce4..1802fb9acce6a3cebf751800a83ab551347e1b6f 100644 --- a/OneM2M_Testcases_CSE_Release_1.ttcn +++ b/OneM2M_Testcases_CSE_Release_1.ttcn @@ -766,7 +766,7 @@ module OneM2M_Testcases_CSE_Release_1 { vc_cse1.start(f_cse_resourceAnnouncementHandler(PX_CSE_ID, f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative))); vc_cse1.done; - + tc_ac.start; alt { diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index fa1c377a0f408f30555845c92c4aca519dc0386e..117d65a863d60d4bf77b722d1c4d01a218f15dbc 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -5485,7 +5485,7 @@ module OneM2M_Testcases_CSE_Release_2 { var integer v_aeAuxIndex := -1; var LocationSource v_locationSource := int1;//Network-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; - var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; + var LocationTargetID locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_request; var MsgIn v_response; @@ -5551,7 +5551,7 @@ module OneM2M_Testcases_CSE_Release_2 { var integer v_acpAuxIndex := -1; var LocationSource v_locationSource := int1;//Network-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; - var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; + var LocationTargetID locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_request; var MsgIn v_response; @@ -5620,7 +5620,7 @@ module OneM2M_Testcases_CSE_Release_2 { var integer v_aeIndex := -1; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; - var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; + var LocationTargetID locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_request; var MsgIn v_response; @@ -5683,7 +5683,7 @@ module OneM2M_Testcases_CSE_Release_2 { var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Duration locationUpdatePeriod_invalid := c_invalid_location_update_period; - var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; + var LocationTargetID locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_request; var RequestPrimitive v_locpolicy_request_preamble; @@ -5745,7 +5745,7 @@ module OneM2M_Testcases_CSE_Release_2 { var integer v_locPolicyResourceIndex := -1; var integer v_locContainerResourceIndex := -1; var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; - var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; + var LocationTargetID locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_loc_request_preamble; var RequestPrimitive v_container_request_preamble; @@ -5943,7 +5943,7 @@ module OneM2M_Testcases_CSE_Release_2 { var integer v_subscriptionResourceIndex := -1; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; - var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; + var LocationTargetID locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_locpolicy_request_preamble; var RequestPrimitive v_container_request_preamble; @@ -6146,7 +6146,7 @@ module OneM2M_Testcases_CSE_Release_2 { var integer v_locContainerResourceIndex := -1; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; - var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; + var LocationTargetID locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_locpolicy_request_preamble; var RequestPrimitive v_container_request_preamble; @@ -6207,7 +6207,7 @@ module OneM2M_Testcases_CSE_Release_2 { var MsgIn v_response; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; - var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; + var LocationTargetID locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS;