<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24821">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  daniel: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">MGCP_Test: upgrade expected behavior for TC_dlcx_wildcarded<br><br>The testcase TC_dlcx_wildcarded expect osmo-mgw to reject wildcarded<br>DLCX requests but osmo-mgw now implements wildcarded DLCX<br><br>Depends: osmo-mgw I6d3a74f6087512130d85002348787bffc672de81<br>Depends: docker-playground I693cc17dbf6836e7a74b34111671b6e589744a63<br>Change-Id: I61e23e264bc85eb36d07431c7839fb445c110947<br>Related: SYS#5535<br>---<br>M mgw/MGCP_Test.default<br>M mgw/MGCP_Test.ttcn<br>M mgw/gen_links.sh<br>M mgw/regen_makefile.sh<br>4 files changed, 59 insertions(+), 9 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/mgw/MGCP_Test.default b/mgw/MGCP_Test.default</span><br><span>index 35f7ed0..54bf9af 100644</span><br><span>--- a/mgw/MGCP_Test.default</span><br><span>+++ b/mgw/MGCP_Test.default</span><br><span>@@ -11,6 +11,15 @@</span><br><span> *.MGWVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span> *.MGWVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.MGWVTY.PROMPT1 := "OsmoMGW> "</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_MODE := "client"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_HOSTNAME := "127.0.0.1"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_PORTNUM := "4243"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_LOGIN_SKIPPED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_READMODE := "buffered"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.PROMPT1 := "OsmoMGW> "</span><br><span> </span><br><span> [MODULE_PARAMETERS]</span><br><span> mp_local_udp_port := 2727;</span><br><span>diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn</span><br><span>index 307f0a8..6990679 100644</span><br><span>--- a/mgw/MGCP_Test.ttcn</span><br><span>+++ b/mgw/MGCP_Test.ttcn</span><br><span>@@ -30,6 +30,10 @@</span><br><span>      import from IP_Types all;</span><br><span>    import from Osmocom_VTY_Functions all;</span><br><span>       import from TELNETasp_PortType all;</span><br><span style="color: hsl(120, 100%, 40%);">+   import from StatsD_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+ import from StatsD_CodecPort all;</span><br><span style="color: hsl(120, 100%, 40%);">+     import from StatsD_CodecPort_CtrlFunct all;</span><br><span style="color: hsl(120, 100%, 40%);">+   import from StatsD_Checker all;</span><br><span> </span><br><span>  const charstring c_mgw_domain := "mgw";</span><br><span>    const charstring c_mgw_ep_rtpbridge := "rtpbridge/";</span><br><span>@@ -37,7 +41,7 @@</span><br><span>   /* any variables declared in the component will be available to</span><br><span>       * all functions that 'run on' the named component, similar to</span><br><span>        * class members in C++ */</span><br><span style="color: hsl(0, 100%, 40%);">-      type component dummy_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     type component dummy_CT extends StatsD_ConnHdlr {</span><br><span>            port MGCP_CODEC_PT MGCP;</span><br><span>             var boolean initialized := false;</span><br><span>            var ConnectionId g_mgcp_conn_id := -1;</span><br><span>@@ -50,6 +54,8 @@</span><br><span>           port OsmuxEM_CTRL_PT OsmuxEM;</span><br><span> </span><br><span>            port TELNETasp_PT MGWVTY;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           var StatsD_Checker_CT vc_STATSD;</span><br><span>     };</span><br><span> </span><br><span>       function get_next_trans_id() runs on dummy_CT return MgcpTransId {</span><br><span>@@ -71,6 +77,8 @@</span><br><span>               charstring mp_remote_ipv6 := "::1";</span><br><span>                PortNumber mp_local_rtp_port_base := 10000;</span><br><span>          PortNumber mp_local_osmux_port := 1985;</span><br><span style="color: hsl(120, 100%, 40%);">+               PortNumber mp_mgw_statsd_port := 8125;</span><br><span style="color: hsl(120, 100%, 40%);">+                charstring mp_test_ip := "127.0.0.1";</span><br><span>      }</span><br><span> </span><br><span>        private function f_vty_enable_osmux(boolean osmux_on) runs on dummy_CT {</span><br><span>@@ -141,6 +149,11 @@</span><br><span>                              f_osmuxem_init(vc_OsmuxEM);</span><br><span>                          connect(vc_OsmuxEM:CTRL, self:OsmuxEM);</span><br><span>                      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   f_init_statsd("VirtCallAgent", vc_STATSD, mp_test_ip, mp_mgw_statsd_port);</span><br><span style="color: hsl(120, 100%, 40%);">+                  connect(self:STATSD_PROC, vc_STATSD:STATSD_PROC);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   f_statsd_reset();</span><br><span>            }</span><br><span> </span><br><span>                if (isvalue(ep)) {</span><br><span>@@ -1043,25 +1056,52 @@</span><br><span> </span><br><span>     /* test valid wildcarded DLCX */</span><br><span>     testcase TC_dlcx_wildcarded() runs on dummy_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-                 /* Note: A wildcarded DLCX is specified, but our MGW does not</span><br><span style="color: hsl(0, 100%, 40%);">-            * support this feature so we expect the MGW to reject the</span><br><span style="color: hsl(0, 100%, 40%);">-               * request */</span><br><span>               var template MgcpCommand cmd;</span><br><span>                var MgcpResponse resp;</span><br><span>               var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "*@" & c_mgw_domain;</span><br><span style="color: hsl(120, 100%, 40%);">+            const integer n_endpoints := 31;</span><br><span style="color: hsl(120, 100%, 40%);">+              var integer i;</span><br><span style="color: hsl(120, 100%, 40%);">+                var MgcpCallId call_id := '1234'H;</span><br><span style="color: hsl(120, 100%, 40%);">+            var StatsDExpects expect;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_init(ep);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         /* Allocate a few endpoints */</span><br><span style="color: hsl(120, 100%, 40%);">+                for (i := 0; i < n_endpoints; i := i+1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                  cmd := ts_CRCX(get_next_trans_id(), ep, "recvonly", call_id);</span><br><span style="color: hsl(120, 100%, 40%);">+                       resp := mgcp_transceive_mgw(cmd, tr_CRCX_ACK);</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%);">+           expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   { name := "TTCN3.trunk.virtual-0.common.endpoints.used", mtype := "g", min := n_endpoints, max := n_endpoints}</span><br><span style="color: hsl(120, 100%, 40%);">+            };</span><br><span style="color: hsl(120, 100%, 40%);">+            f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            /* Send wildcarded DLCX */</span><br><span>           var template MgcpResponse rtmpl := {</span><br><span>                         line := {</span><br><span style="color: hsl(0, 100%, 40%);">-                               code := "507",</span><br><span style="color: hsl(120, 100%, 40%);">+                              code := "200",</span><br><span>                             string := ?</span><br><span>                  },</span><br><span>                   params:= { },</span><br><span>                        sdp := omit</span><br><span>          };</span><br><span style="color: hsl(120, 100%, 40%);">+            cmd := ts_DLCX(get_next_trans_id(), ep);</span><br><span style="color: hsl(120, 100%, 40%);">+              mgcp_transceive_mgw(cmd, rtmpl);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-            f_init(ep);</span><br><span style="color: hsl(120, 100%, 40%);">+           /* The stats reporter collects multiple samples during the reporting interval and</span><br><span style="color: hsl(120, 100%, 40%);">+              * reports the highest back to the user. This means we will not immediately get</span><br><span style="color: hsl(120, 100%, 40%);">+                * the 0 endpoints but an intermediate result instead. */</span><br><span style="color: hsl(120, 100%, 40%);">+             expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   { name := "TTCN3.trunk.virtual-0.common.endpoints.used", mtype := "g", min := 0, max := n_endpoints}</span><br><span style="color: hsl(120, 100%, 40%);">+              };</span><br><span style="color: hsl(120, 100%, 40%);">+            f_statsd_expect(expect);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-            cmd := ts_DLCX(get_next_trans_id(), ep, '41234'H);</span><br><span style="color: hsl(0, 100%, 40%);">-              resp := mgcp_transceive_mgw(cmd, rtmpl);</span><br><span style="color: hsl(120, 100%, 40%);">+              /* The second interval must resturn a result with 0 endpoints in use. */</span><br><span style="color: hsl(120, 100%, 40%);">+              expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   { name := "TTCN3.trunk.virtual-0.common.endpoints.used", mtype := "g", min := 0, max := 0}</span><br><span style="color: hsl(120, 100%, 40%);">+                };</span><br><span style="color: hsl(120, 100%, 40%);">+            f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>           setverdict(pass);</span><br><span>    }</span><br><span> </span><br><span>diff --git a/mgw/gen_links.sh b/mgw/gen_links.sh</span><br><span>index 8893954..6ca53a6 100755</span><br><span>--- a/mgw/gen_links.sh</span><br><span>+++ b/mgw/gen_links.sh</span><br><span>@@ -45,6 +45,7 @@</span><br><span> FILES+="Native_Functions.ttcn Native_FunctionDefs.cc IPCP_Types.ttcn "</span><br><span> FILES+="Osmocom_VTY_Functions.ttcn "</span><br><span> FILES+="RTP_CodecPort_CtrlFunct.ttcn RTP_CodecPort_CtrlFunctDef.cc "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcn "</span><br><span> gen_links $DIR $FILES</span><br><span> </span><br><span> ignore_pp_results</span><br><span>diff --git a/mgw/regen_makefile.sh b/mgw/regen_makefile.sh</span><br><span>index 4662933..2368c77 100755</span><br><span>--- a/mgw/regen_makefile.sh</span><br><span>+++ b/mgw/regen_makefile.sh</span><br><span>@@ -1,5 +1,5 @@</span><br><span> #!/bin/sh</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-FILES="*.ttcn SDP_EncDec.cc *.c MGCP_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RTP_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc OSMUX_CodecPort_CtrlFunctDef.cc IuUP_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IP_EncDec.cc "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="*.ttcn SDP_EncDec.cc *.c MGCP_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RTP_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc OSMUX_CodecPort_CtrlFunctDef.cc IuUP_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IP_EncDec.cc StatsD_CodecPort_CtrlFunctdef.cc "</span><br><span> </span><br><span> ../regen-makefile.sh MGCP_Test.ttcn $FILES</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24821">change 24821</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/+/24821"/><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: I61e23e264bc85eb36d07431c7839fb445c110947 </div>
<div style="display:none"> Gerrit-Change-Number: 24821 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>