diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 2e4aca7cd9b7a0e1618b245edd876bb609d7505f..a24fefc58fdc6bc85ac3becebefe084433cb1937 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -941,20 +941,27 @@ module OneM2M_Functions { * @desc Connection of InfoPort of two components * @param p_tester PTC where InfoPort is to be connected */ - function f_connectInfoPort(in Tester p_tester) runs on Tester { + function f_connectInfoPort(in Tester p_tester) runs on Tester return boolean { + var boolean connectionState := false; // Connect + if (infoPort.checkstate("Connected")) { + connectionState := true; + } connect(self:infoPort, p_tester:infoPort); - log(__SCOPE__&": INFO: infoPort connected"); + log(__SCOPE__&": INFO: infoPort connected"); + return connectionState; } /** * @desc Disconnection of InfoPort of two components * @param p_tester PTC where InfoPort is to be connected */ - function f_disconnectInfoPort(in Tester p_tester) runs on Tester { + function f_disconnectInfoPort(in Tester p_tester, in boolean connectionState := false) runs on Tester { // Disconnect - disconnect(self:infoPort, p_tester:infoPort); - log(__SCOPE__&": INFO: infoPort disconnected"); + if (not connectionState) { + disconnect(self:infoPort, p_tester:infoPort); + log(__SCOPE__&": INFO: infoPort disconnected"); + } } group getFunctions { @@ -987,8 +994,9 @@ module OneM2M_Functions { */ function f_getRequestPrimitive(in Tester p_component) runs on Tester return RequestPrimitive { var RequestPrimitive v_request; - - f_connectInfoPort(p_component); + var boolean previousConnectionState := false; + + previousConnectionState := f_connectInfoPort(p_component); p_component.start(f_sendRequestPrimitive()); alt { @@ -998,7 +1006,7 @@ module OneM2M_Functions { p_component.done; - f_disconnectInfoPort(p_component); + f_disconnectInfoPort(p_component, previousConnectionState); return v_request; diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 642ae574a1e3f17dd46c5f0a16b5ae6ba3c45471..887f8a8b37018440dfeca24a20f0bee93324ae0d 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -2020,6 +2020,15 @@ module OneM2M_Templates { resourceType := int10018, primitiveContent := {scheduleAnnc := m_contentCreateScheduleAnnc (omit, {{"* * * * * * *"}})} }; + + /** + * @desc Base CREATE request primitive for Schedule resource + */ + template (value) RequestPrimitive m_createScheduleBase_subscription modifies m_create := { + requestIdentifier := testcasename() & "-m_createSchedule", + resourceType := int18, + primitiveContent := {schedule := m_contentCreateSchedule ({{"* * * * * * *"}}, "notificationSchedule")} + }; template (value) RequestPrimitive m_createSchedule(XSD.ID p_parentResourceAddress, in template (omit) ResourceName p_name, in template (value) ScheduleEntries p_scheduleElement ) modifies m_create := { to_ := p_parentResourceAddress, @@ -2078,7 +2087,7 @@ module OneM2M_Templates { primitiveContent := {subscription := m_contentCreateSubscription ({"NotInitialized"})} }; - template (value) RequestPrimitive m_createSubscription(template (omit) XSD.ID p_to := omit, in template (omit) ResourceName p_name, in template (value) ListOfURIs p_notificationURI := {"NotInitialized"}) modifies m_create := { + template (value) RequestPrimitive m_createSubscription(template (omit) XSD.ID p_to := omit, in template (omit) ResourceName p_name := c_defaultSubscriptionResourceName, in template (value) ListOfURIs p_notificationURI := {"NotInitialized"}) modifies m_create := { to_ := p_to, requestIdentifier := testcasename() & "-m_createSubscription", resourceType := int23, diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index a42e93f4070390a99d387d2746c799ade1dfc296..255723fd8166de95b1bdb56bc528a6849be25489 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -3176,7 +3176,7 @@ module OneM2M_PermutationFunctions { } } - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + f_checkAeSimuStatus(); //Check to see if the resource is present or not if (f_cse_isResourcePresent(v_resourceIndex)){ @@ -3324,7 +3324,7 @@ module OneM2M_PermutationFunctions { } } - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + f_checkAeSimuStatus(); //Check to see if the resource is present or not if(f_cse_isResourcePresent(v_resourceIndex)){ @@ -3368,6 +3368,10 @@ module OneM2M_PermutationFunctions { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); + + if(vc_ae2.running) { + vc_ae2.stop; + }; if(p_resourceType == int15) { v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex); @@ -3805,7 +3809,7 @@ module OneM2M_PermutationFunctions { } } - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + f_checkAeSimuStatus(); //Check to see if the resource is present or not if(f_cse_isResourcePresent(v_resourceIndex)) { @@ -4569,7 +4573,7 @@ module OneM2M_PermutationFunctions { } } - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + f_checkAeSimuStatus(); // Postamble f_cse_postamble_deleteResources(); @@ -6073,6 +6077,10 @@ module OneM2M_PermutationFunctions { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + if (vc_ae2.running) { + vc_ae2.stop; + }; // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); @@ -6598,6 +6606,8 @@ module OneM2M_PermutationFunctions { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attributes"); } } + + f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); @@ -6653,6 +6663,8 @@ module OneM2M_PermutationFunctions { setverdict(fail, __SCOPE__ & ": No answer while updating resource " & int2str(enum2int(p_resourceTypeChild))); } } + + f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_childIndex); @@ -6693,7 +6705,7 @@ module OneM2M_PermutationFunctions { p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive,{f_getResourceAddress(v_acp1Index)}); p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive,{f_getResourceAddress(v_acp2Index)}); - infoPort.send(f_getResourceAddress(lengthof(vc_resourcesList)-1, e_nonHierarchical)) to mtc; + //infoPort.send(f_getResourceAddress(lengthof(vc_resourcesList)-1, e_nonHierarchical)) to mtc; } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, vc_aeIndex); @@ -7641,6 +7653,8 @@ module OneM2M_PermutationFunctions { } } + f_checkAeSimuStatus(); + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn index b24eb16e9ddd93068b4ec09a11e5c1d2f3fe4f70..c3cf2caecfbdfe879a7d13db5f508330567dde17 100644 --- a/OneM2M_Testcases_CSE_Release_1.ttcn +++ b/OneM2M_Testcases_CSE_Release_1.ttcn @@ -2071,7 +2071,7 @@ module OneM2M_Testcases_CSE_Release_1 { [] mccPort.receive(mw_response(mw_responsePrimitive(int2001, v_primitiveContent))) -> value v_response { tc_ac.stop; f_checkAttributesToBeSaved(int10002, v_request, v_response.primitive.responsePrimitive); - v_aeAnncIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int10002); + v_aeAnncIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int10002, vc_remoteCseIndex); setverdict(pass, __SCOPE__ & ": AEAnnc successfully created."); if(v_response.primitive.responsePrimitive.primitiveContent.aEAnnc.link != vc_cseSimuDesc.cseId & "/" & PX_ALLOWED_S_AE_IDS[0]) { @@ -8528,7 +8528,9 @@ module OneM2M_Testcases_CSE_Release_1 { v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + if(vc_ae2.running) { + vc_ae2.stop; + }; // Test Body v_request:= f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex); @@ -8554,6 +8556,8 @@ module OneM2M_Testcases_CSE_Release_1 { setverdict(fail, __SCOPE__ & ": No answer while creating resource type int3 (Container)"); } } + + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); @@ -8606,7 +8610,9 @@ module OneM2M_Testcases_CSE_Release_1 { v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + if(vc_ae2.running) { + vc_ae2.stop; + }; // Test Body v_contentResponse.aE := mw_contentAeBase; // all attributes expected @@ -8636,6 +8642,8 @@ module OneM2M_Testcases_CSE_Release_1 { } }; + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + //Postamble f_cse_postamble_deleteResources(); @@ -8691,7 +8699,9 @@ module OneM2M_Testcases_CSE_Release_1 { v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); // Subscription resource deletion request - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + if(vc_ae2.running) { + vc_ae2.stop; + }; // Test Body v_notificationContent.subscriptionReference := ?; diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 266a46127dd449ec0363bfe1b6d917516a897b86..317ceba4dc0e467cda5e9ff8d14aeddbdb016072 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -1133,7 +1133,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := mw_contentSubscription_rc1; - v_ae1.start(f_CSE_DMR_RET_021(int23, m_createSubscriptionBase, v_contentResponse, int18, m_createScheduleBase));//Subscription + v_ae1.start(f_CSE_DMR_RET_021(int23, m_createSubscriptionBase, v_contentResponse, int18, m_createScheduleBase_subscription));//Subscription v_ae1.done; } diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index d1e870279a18a41267e76b9fb299d3c80273917c..e2d057ebf89e37f79eed86b01bc06175845eed35 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -8745,6 +8745,10 @@ module OneM2M_Testcases_CSE_Release_3 { } } + if(vc_ae2.running) { + vc_ae2.stop; + }; + // Test Body v_contentResponse.notification.notificationForwardingURI := v_fanoutPointAddress; vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, 1)); // check if the Rx. of notification and match contents