laforge has submitted this change and it was merged. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14409 )

Change subject: lib/CTRL: Improve and add more helper templates and functions
......................................................................

lib/CTRL: Improve and add more helper templates and functions

Change-Id: Icc6ac860ebd6a719f9e0cb5c5345fb4d39a864ce
---
M library/Osmocom_CTRL_Functions.ttcn
M library/Osmocom_CTRL_Types.ttcn
2 files changed, 75 insertions(+), 2 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/library/Osmocom_CTRL_Functions.ttcn 
b/library/Osmocom_CTRL_Functions.ttcn
index 94dcb8a..22ed405 100644
--- a/library/Osmocom_CTRL_Functions.ttcn
+++ b/library/Osmocom_CTRL_Functions.ttcn
@@ -71,10 +71,16 @@
                }
        }

+       /* send a TRAP */
+       function f_ctrl_trap(IPA_CTRL_PT pt, CtrlVariable variable, CtrlValue 
val) {
+               pt.send(ts_CtrlMsgTrap(variable, val));
+       }
+
        /* Expect a matching TRAP */
        function f_ctrl_exp_trap(IPA_CTRL_PT pt, template CtrlVariable variable,
-                                template CtrlValue val := ?) return CtrlValue {
-               timer T := 2.0;
+                                template CtrlValue val := ?, float timeout_val 
:= 2.0)
+       return CtrlValue {
+               timer T := timeout_val;
                var CtrlMessage rx;
                T.start;
                alt {
@@ -88,6 +94,29 @@
                return rx.trap.val;
        }

+       /* Expect a matching SET, optionally answer */
+       function f_ctrl_exp_set(IPA_CTRL_PT pt, template CtrlVariable variable,
+                                template CtrlValue val := ?,
+                                template (omit) CtrlValue rsp := omit,
+                                float timeout_val := 2.0)
+       return CtrlValue {
+               timer T := timeout_val;
+               var CtrlMessage rx;
+               T.start;
+               alt {
+               [] pt.receive(tr_CtrlMsgSet(?, variable, val)) -> value rx {
+                       if (ispresent(rsp)) {
+                               pt.send(ts_CtrlMsgSetRepl(rx.cmd.id, 
valueof(variable), valueof(rsp)));
+                       }
+                       }
+               [] T.timeout {
+                       setverdict(fail, "Timeout waiting for SET ", variable);
+                       mtc.stop;
+                       }
+               }
+               return rx.cmd.val;
+       }
+
        /* Expect a matching GET result */
        function f_ctrl_get_exp(IPA_CTRL_PT pt, CtrlVariable variable, template 
CtrlValue exp) {
                var charstring ctrl_resp;
diff --git a/library/Osmocom_CTRL_Types.ttcn b/library/Osmocom_CTRL_Types.ttcn
index 5c4527e..52be956 100644
--- a/library/Osmocom_CTRL_Types.ttcn
+++ b/library/Osmocom_CTRL_Types.ttcn
@@ -94,6 +94,50 @@
        }
 }

+template CtrlMessage ts_CtrlMsgTrap(CtrlVariable variable, template (omit) 
CtrlValue val := omit) := {
+       trap := {
+               variable := variable,
+               val := val
+       }
+}
+
+template CtrlMessage ts_CtrlMsgGetRepl(CtrlId id, CtrlVariable variable, 
CtrlValue val) := {
+       resp := {
+               verb := "GET_REPLY",
+               id := id,
+               variable := variable,
+               val := val
+       }
+};
+
+template CtrlMessage ts_CtrlMsgSetRepl(CtrlId id, CtrlVariable variable, 
CtrlValue val) := {
+       resp := {
+               verb := "SET_REPLY",
+               id := id,
+               variable := variable,
+               val := val
+       }
+}
+
+template CtrlMessage tr_CtrlMsgGet(template CtrlId id, template CtrlVariable 
variable := ?) := {
+       cmd := {
+               verb := "GET",
+               id := id,
+               variable := variable,
+               val := ?
+       }
+}
+
+template CtrlMessage tr_CtrlMsgSet(template CtrlId id, template CtrlVariable 
variable := ?,
+                          template CtrlValue val := ?) := {
+       cmd := {
+               verb := "SET",
+               id := id,
+               variable := variable,
+               val := val
+       }
+}
+
 template CtrlMessage tr_CtrlMsgGetRepl(template CtrlId id, template 
CtrlVariable variable := ?) := {
        resp := {
                verb := "GET_REPLY",

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14409
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Icc6ac860ebd6a719f9e0cb5c5345fb4d39a864ce
Gerrit-Change-Number: 14409
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <lafo...@gnumonks.org>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>
Gerrit-MessageType: merged

Reply via email to