<p>Vadim Yanitskiy has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9687">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">msc/USSD: introduce common GSUP/BSSAP matching functions<br><br>In order to avoid code duplication in the upcoming test cases,<br>let's introduce a few functions which basically do a GSUP/BSSAP<br>message matching within the alternative statement.<br><br>Change-Id: I846c2d40a7c37afa8647e644673b4df905e3e116<br>---<br>M msc/MSC_Tests.ttcn<br>1 file changed, 54 insertions(+), 56 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/87/9687/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn</span><br><span>index 1af77cd..c56b9cc 100644</span><br><span>--- a/msc/MSC_Tests.ttcn</span><br><span>+++ b/msc/MSC_Tests.ttcn</span><br><span>@@ -2109,6 +2109,48 @@</span><br><span>  * USSD Testing</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+private function f_expect_gsup_msg(template GSUP_PDU gsup_msg)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on BSC_ConnHdlr return GSUP_PDU {</span><br><span style="color: hsl(120, 100%, 40%);">+       var GSUP_PDU gsup_msg_complete;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] GSUP.receive(gsup_msg) -> value gsup_msg_complete {</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] GSUP.receive {</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(fail, "Unknown/unexpected GSUP received");</span><br><span style="color: hsl(120, 100%, 40%);">+               self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] BSSAP.receive {</span><br><span style="color: hsl(120, 100%, 40%);">+            setverdict(fail, "Unexpected BSSAP message received");</span><br><span style="color: hsl(120, 100%, 40%);">+              self.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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   return gsup_msg_complete;</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%);">+private function f_expect_mt_bssap_msg(template PDU_ML3_NW_MS bssap_msg)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on BSC_ConnHdlr return PDU_ML3_NW_MS {</span><br><span style="color: hsl(120, 100%, 40%);">+ var PDU_DTAP_MT bssap_msg_complete;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] BSSAP.receive(tr_PDU_DTAP_MT(bssap_msg)) -> value bssap_msg_complete {</span><br><span style="color: hsl(120, 100%, 40%);">+          setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] BSSAP.receive {</span><br><span style="color: hsl(120, 100%, 40%);">+            setverdict(fail, "Unknown/unexpected BSSAP received");</span><br><span style="color: hsl(120, 100%, 40%);">+              self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] GSUP.receive {</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(fail, "Unexpected GSUP message received");</span><br><span style="color: hsl(120, 100%, 40%);">+               self.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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   return bssap_msg_complete.dtap;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* LU followed by MO USSD request */</span><br><span> private function f_tc_lu_and_mo_ussd_single_request(charstring id, BSC_ConnHdlrPars pars)</span><br><span> runs on BSC_ConnHdlr {</span><br><span>@@ -2159,21 +2201,10 @@</span><br><span>        /* To be used for sending response with correct session ID */</span><br><span>        var GSUP_PDU gsup_req_complete;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     /* Request own number request, wait for GSUP-request */</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Request own number */</span><br><span>     BSSAP.send(ts_PDU_DTAP_MO(ussd_req));</span><br><span style="color: hsl(0, 100%, 40%);">-   alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] GSUP.receive(gsup_req) -> value gsup_req_complete {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(pass);</span><br><span style="color: hsl(0, 100%, 40%);">-               }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] GSUP.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail, "Unknown/unexpected GSUP received");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-              }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] BSSAP.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-              setverdict(fail, "Unexpected BSSAP message received");</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-              }</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Expect GSUP request with original Facility IE */</span><br><span style="color: hsl(120, 100%, 40%);">+   gsup_req_complete := f_expect_gsup_msg(gsup_req);</span><br><span> </span><br><span>        /* Compose the response from HLR using received session ID */</span><br><span>        var template GSUP_PDU gsup_rsp := ts_GSUP_PROC_SS_REQ(</span><br><span>@@ -2183,21 +2214,10 @@</span><br><span>             ss := valueof(facility_rsp)</span><br><span>  );</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        /* Send response over GSUP */</span><br><span>        GSUP.send(gsup_rsp);</span><br><span style="color: hsl(0, 100%, 40%);">-    alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   /* We expect RELEASE_COMPLETE message with the response */</span><br><span style="color: hsl(0, 100%, 40%);">-      [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) {</span><br><span style="color: hsl(0, 100%, 40%);">-            setverdict(pass);</span><br><span style="color: hsl(0, 100%, 40%);">-               }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] BSSAP.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-              setverdict(fail, "Unknown/unexpected BSSAP received");</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-              }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] GSUP.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail, "Unexpected GSUP message received");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-              }</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Expect MT RELEASE COMPLETE message with USSD response */</span><br><span style="color: hsl(120, 100%, 40%);">+   f_expect_mt_bssap_msg(ussd_rsp);</span><br><span> </span><br><span>         f_expect_clear();</span><br><span> }</span><br><span>@@ -2263,21 +2283,10 @@</span><br><span>     /* To be used for sending response with correct session ID */</span><br><span>        var GSUP_PDU gsup_req_complete;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     /* Request own number request, wait for GSUP-request */</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Request own number */</span><br><span>     BSSAP.send(ts_PDU_DTAP_MO(ussd_req));</span><br><span style="color: hsl(0, 100%, 40%);">-   alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] GSUP.receive(gsup_req) -> value gsup_req_complete {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(pass);</span><br><span style="color: hsl(0, 100%, 40%);">-               }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] GSUP.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail, "Unknown/unexpected GSUP received");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-              }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] BSSAP.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-              setverdict(fail, "Unexpected BSSAP message received");</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-              }</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Expect GSUP request with original Facility IE */</span><br><span style="color: hsl(120, 100%, 40%);">+   gsup_req_complete := f_expect_gsup_msg(gsup_req);</span><br><span> </span><br><span>        /* Compose the response from HLR using received session ID */</span><br><span>        var template GSUP_PDU gsup_rsp := ts_GSUP_PROC_SS_REQ(</span><br><span>@@ -2287,21 +2296,10 @@</span><br><span>             ss := valueof(facility_rsp)</span><br><span>  );</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        /* Send response over GSUP */</span><br><span>        GSUP.send(gsup_rsp);</span><br><span style="color: hsl(0, 100%, 40%);">-    alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   /* We expect RELEASE_COMPLETE message with the response */</span><br><span style="color: hsl(0, 100%, 40%);">-      [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) {</span><br><span style="color: hsl(0, 100%, 40%);">-            setverdict(pass);</span><br><span style="color: hsl(0, 100%, 40%);">-               }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] BSSAP.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-              setverdict(fail, "Unknown/unexpected BSSAP received");</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-              }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] GSUP.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail, "Unexpected GSUP message received");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-              }</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Expect MT RELEASE COMPLETE message with USSD response */</span><br><span style="color: hsl(120, 100%, 40%);">+   f_expect_mt_bssap_msg(ussd_rsp);</span><br><span> </span><br><span>         /* Hold the call for some time */</span><br><span>    f_sleep(1.0);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9687">change 9687</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/9687"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I846c2d40a7c37afa8647e644673b4df905e3e116 </div>
<div style="display:none"> Gerrit-Change-Number: 9687 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>