From 5ab8e87f94b6b8c2a90ac275f9714808d4a47fa8 Mon Sep 17 00:00:00 2001 From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org> Date: Thu, 5 Sep 2024 15:55:14 +0200 Subject: [PATCH] Enhancement for infoPort connection/deconnection functions --- LibOneM2M/OneM2M_Functions.ttcn | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 6c59ff8..416b264 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -940,18 +940,29 @@ 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 - connect(self:infoPort, p_tester:infoPort); + if (infoPort.checkstate("Connected")) { + connectionState := true; + } + connect(self:infoPort, p_tester:infoPort); + 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); + if (not connectionState) { + disconnect(self:infoPort, p_tester:infoPort); + log(__SCOPE__&": INFO: infoPort disconnected"); + } + } group getFunctions { @@ -984,8 +995,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 { @@ -995,7 +1007,7 @@ module OneM2M_Functions { p_component.done; - f_disconnectInfoPort(p_component); + f_disconnectInfoPort(p_component, previousConnectionState); return v_request; -- GitLab