<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14409">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">lib/CTRL: Add more helper templates and functions<br><br>Change-Id: Icc6ac860ebd6a719f9e0cb5c5345fb4d39a864ce<br>---<br>M library/Osmocom_CTRL_Functions.ttcn<br>M library/Osmocom_CTRL_Types.ttcn<br>2 files changed, 69 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/09/14409/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn</span><br><span>index 94dcb8a..23fbc30 100644</span><br><span>--- a/library/Osmocom_CTRL_Functions.ttcn</span><br><span>+++ b/library/Osmocom_CTRL_Functions.ttcn</span><br><span>@@ -71,6 +71,11 @@</span><br><span>          }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* send a TRAP */</span><br><span style="color: hsl(120, 100%, 40%);">+     function f_ctrl_trap(IPA_CTRL_PT pt, CtrlVariable variable, CtrlValue val) {</span><br><span style="color: hsl(120, 100%, 40%);">+          pt.send(ts_CtrlMsgTrap(variable, val));</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* Expect a matching TRAP */</span><br><span>         function f_ctrl_exp_trap(IPA_CTRL_PT pt, template CtrlVariable variable,</span><br><span>                              template CtrlValue val := ?) return CtrlValue {</span><br><span>@@ -88,6 +93,26 @@</span><br><span>                return rx.trap.val;</span><br><span>  }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* Expect a matching SET, optionally answer */</span><br><span style="color: hsl(120, 100%, 40%);">+        function f_ctrl_exp_set(IPA_CTRL_PT pt, template CtrlVariable variable,</span><br><span style="color: hsl(120, 100%, 40%);">+                                template CtrlValue val := ?, template (omit) CtrlValue rsp := omit) return CtrlValue {</span><br><span style="color: hsl(120, 100%, 40%);">+               timer T := 2.0;</span><br><span style="color: hsl(120, 100%, 40%);">+               var CtrlMessage rx;</span><br><span style="color: hsl(120, 100%, 40%);">+           T.start;</span><br><span style="color: hsl(120, 100%, 40%);">+              alt {</span><br><span style="color: hsl(120, 100%, 40%);">+         [] pt.receive(tr_CtrlMsgSet(variable, val)) -> value rx {</span><br><span style="color: hsl(120, 100%, 40%);">+                  if (ispresent(rsp)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                         pt.send(ts_CtrlMsgSet(rx.cmd.id, valueof(variable), valueof(rsp)));</span><br><span style="color: hsl(120, 100%, 40%);">+                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                     }</span><br><span style="color: hsl(120, 100%, 40%);">+             [] T.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+                        setverdict(fail, "Timeout waiting for SET ", variable);</span><br><span style="color: hsl(120, 100%, 40%);">+                     mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                     }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             return rx.cmd.val;</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* Expect a matching GET result */</span><br><span>   function f_ctrl_get_exp(IPA_CTRL_PT pt, CtrlVariable variable, template CtrlValue exp) {</span><br><span>             var charstring ctrl_resp;</span><br><span>diff --git a/library/Osmocom_CTRL_Types.ttcn b/library/Osmocom_CTRL_Types.ttcn</span><br><span>index 5c4527e..52be956 100644</span><br><span>--- a/library/Osmocom_CTRL_Types.ttcn</span><br><span>+++ b/library/Osmocom_CTRL_Types.ttcn</span><br><span>@@ -94,6 +94,50 @@</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+template CtrlMessage ts_CtrlMsgTrap(CtrlVariable variable, template (omit) CtrlValue val := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+    trap := {</span><br><span style="color: hsl(120, 100%, 40%);">+             variable := variable,</span><br><span style="color: hsl(120, 100%, 40%);">+         val := val</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+template CtrlMessage ts_CtrlMsgGetRepl(CtrlId id, CtrlVariable variable, CtrlValue val) := {</span><br><span style="color: hsl(120, 100%, 40%);">+  resp := {</span><br><span style="color: hsl(120, 100%, 40%);">+             verb := "GET_REPLY",</span><br><span style="color: hsl(120, 100%, 40%);">+                id := id,</span><br><span style="color: hsl(120, 100%, 40%);">+             variable := variable,</span><br><span style="color: hsl(120, 100%, 40%);">+         val := val</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+template CtrlMessage ts_CtrlMsgSetRepl(CtrlId id, CtrlVariable variable, CtrlValue val) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ resp := {</span><br><span style="color: hsl(120, 100%, 40%);">+             verb := "SET_REPLY",</span><br><span style="color: hsl(120, 100%, 40%);">+                id := id,</span><br><span style="color: hsl(120, 100%, 40%);">+             variable := variable,</span><br><span style="color: hsl(120, 100%, 40%);">+         val := val</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+template CtrlMessage tr_CtrlMsgGet(template CtrlId id, template CtrlVariable variable := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+      cmd := {</span><br><span style="color: hsl(120, 100%, 40%);">+              verb := "GET",</span><br><span style="color: hsl(120, 100%, 40%);">+              id := id,</span><br><span style="color: hsl(120, 100%, 40%);">+             variable := variable,</span><br><span style="color: hsl(120, 100%, 40%);">+         val := ?</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+template CtrlMessage tr_CtrlMsgSet(template CtrlId id, template CtrlVariable variable := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                      template CtrlValue val := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+  cmd := {</span><br><span style="color: hsl(120, 100%, 40%);">+              verb := "SET",</span><br><span style="color: hsl(120, 100%, 40%);">+              id := id,</span><br><span style="color: hsl(120, 100%, 40%);">+             variable := variable,</span><br><span style="color: hsl(120, 100%, 40%);">+         val := val</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> template CtrlMessage tr_CtrlMsgGetRepl(template CtrlId id, template CtrlVariable variable := ?) := {</span><br><span>       resp := {</span><br><span>            verb := "GET_REPLY",</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14409">change 14409</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14409"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Icc6ac860ebd6a719f9e0cb5c5345fb4d39a864ce </div>
<div style="display:none"> Gerrit-Change-Number: 14409 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>