<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/9904">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BTS_Tests: Ensure mtc.stop is called after setverdict(fail, ...)<br><br>This will prevent subsequent failures from overwriting the verdict so we<br>can easily see the root cause of the test failure.<br><br>Change-Id: Iba59a69127e845cadbe9aaa1dabd87ff5ce8b43b<br>---<br>M bts/BTS_Tests.ttcn<br>1 file changed, 74 insertions(+), 40 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn</span><br><span>index aee081e..4f0f0ef 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -257,7 +257,7 @@</span><br><span>           }</span><br><span>    [] pt.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(?, ?, ?))) -> value sd {</span><br><span>          setverdict(fail, "Invalid PCU Version/BTS Number received");</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span> }</span><br><span> </span><br><span>@@ -276,7 +276,7 @@</span><br><span>     [] as_pcu_info_ind(pt, pcu_conn_id, pcu_last_info);</span><br><span>  [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for PCU INFO_IND");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -316,7 +316,7 @@</span><br><span>         [] RSL_CCHAN.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP});</span><br><span>   [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for ASP_IPA_EVENT_UP");</span><br><span style="color: hsl(0, 100%, 40%);">-             self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    f_sleep(0.5);   /* workaround for OS#3000 */</span><br><span>@@ -389,7 +389,7 @@</span><br><span> private altstep as_Tguard() runs on ConnHdlr {</span><br><span>         [] g_Tguard.timeout {</span><br><span>                setverdict(fail, "Tguard timeout");</span><br><span style="color: hsl(0, 100%, 40%);">-           self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -404,7 +404,7 @@</span><br><span>                                                     "", -1, -1, {udp:={}}, {});</span><br><span>        if (not ispresent(res.connId)) {</span><br><span>             setverdict(fail, "Could not connect to trx-control interface of trxcon, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-           self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span>    g_bb_trxc_conn_id := res.connId;</span><br><span> }</span><br><span>@@ -455,14 +455,14 @@</span><br><span>                }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout expecting " & id);</span><br><span style="color: hsl(0, 100%, 40%);">-              self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [not ignore_other] as_l1_sacch();</span><br><span>    [not ignore_other] as_meas_res();</span><br><span>    [not ignore_other] as_l1_dcch();</span><br><span>     [not ignore_other] RSL.receive {</span><br><span>             setverdict(fail, "Unexpected RSL message received");</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [ignore_other] RSL.receive { repeat; }</span><br><span>       }</span><br><span>@@ -550,6 +550,7 @@</span><br><span>      alt {</span><br><span>        [] RSL.receive(tr_RSL_CHAN_ACT_ACK(g_chan_nr)) {</span><br><span>             setverdict(fail, "Unexpected CHAN ACT ACK on double activation");</span><br><span style="color: hsl(120, 100%, 40%);">+           mtc.stop;</span><br><span>            }</span><br><span>    [] RSL.receive(tr_RSL_CHAN_ACT_NACK(g_chan_nr)) {</span><br><span>            setverdict(pass);</span><br><span>@@ -577,6 +578,7 @@</span><br><span>              }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout expecting RF_CHAN_REL_ACK");</span><br><span style="color: hsl(120, 100%, 40%);">+              mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -594,6 +596,7 @@</span><br><span>         alt {</span><br><span>        [] RSL.receive(tr_RSL_CHAN_ACT_ACK(g_chan_nr)) {</span><br><span>             setverdict(fail, "Unexpected CHAN ACT ACK");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span>            }</span><br><span>    [] RSL.receive(tr_RSL_CHAN_ACT_NACK(g_chan_nr)) {</span><br><span>            setverdict(pass);</span><br><span>@@ -667,6 +670,7 @@</span><br><span>      alt {</span><br><span>        [not exp] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(0))) {</span><br><span>               setverdict(fail, "Received SACCH when not expecting it");</span><br><span style="color: hsl(120, 100%, 40%);">+           mtc.stop;</span><br><span>            }</span><br><span>    [not exp] T_sacch.timeout {</span><br><span>          setverdict(pass);</span><br><span>@@ -676,6 +680,7 @@</span><br><span>              }</span><br><span>    [exp] T_sacch.timeout {</span><br><span>              setverdict(fail, "Timeout waiting for SACCH on ", g_chan_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+               mtc.stop;</span><br><span>            }</span><br><span>    [] L1CTL.receive { repeat; }</span><br><span>         [] RSL.receive { repeat; }</span><br><span>@@ -740,7 +745,7 @@</span><br><span>     [] L1CTL.receive { repeat; }</span><br><span>         [] T_sacch.timeout {</span><br><span>                 setverdict(fail, "Timeout waiting for SACCH ", l3_exp);</span><br><span style="color: hsl(0, 100%, 40%);">-               self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -986,7 +991,7 @@</span><br><span>                 var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra));</span><br><span>           if (fn == fn_last) {</span><br><span>                         setverdict(fail, "Two RACH in same FN?!?");</span><br><span style="color: hsl(0, 100%, 40%);">-                   self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            fn_last := fn;</span><br><span> </span><br><span>@@ -998,12 +1003,12 @@</span><br><span>                  }</span><br><span>            [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(?, ?, ?))) {</span><br><span>                  setverdict(fail, "Unexpected CHAN RQD");</span><br><span style="color: hsl(0, 100%, 40%);">-                      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span>            [] RSL_CCHAN.receive { repeat; }</span><br><span>             [] T.timeout {</span><br><span>                       setverdict(fail, "Timeout waiting for CHAN RQD");</span><br><span style="color: hsl(0, 100%, 40%);">-                     self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span>            }</span><br><span>    }</span><br><span>@@ -1024,7 +1029,7 @@</span><br><span>            var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra));</span><br><span>           if (fn == fn_last) {</span><br><span>                         setverdict(fail, "Two RACH in same FN?!?");</span><br><span style="color: hsl(0, 100%, 40%);">-                   self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            fn_last := fn;</span><br><span>       }</span><br><span>@@ -1055,7 +1060,7 @@</span><br><span>                                                    "", -1, -1, {udp:={}}, {});</span><br><span>        if (not ispresent(res.connId)) {</span><br><span>             setverdict(fail, "Could not connect to trx-control interface of trxcon, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-           self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span>    g_bb_trxc_conn_id := res.connId;</span><br><span> }</span><br><span>@@ -1079,6 +1084,7 @@</span><br><span>                }</span><br><span>    [not expect_pass] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(ra, fn))) {</span><br><span>            setverdict(fail, "RACH passed but was expected to be dropped: ", toffs256);</span><br><span style="color: hsl(120, 100%, 40%);">+         mtc.stop;</span><br><span>            }</span><br><span>    [] RSL_CCHAN.receive { repeat; }</span><br><span>     [not expect_pass] T.timeout {</span><br><span>@@ -1086,6 +1092,7 @@</span><br><span>                }</span><br><span>    [expect_pass] T.timeout {</span><br><span>            setverdict(fail, "Timeout waiting for CHAN RQD");</span><br><span style="color: hsl(120, 100%, 40%);">+           mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -1287,16 +1294,16 @@</span><br><span>                     repeat;</span><br><span>              } else {</span><br><span>                     setverdict(fail, "Received unspecific MEAS RES ", rsl);</span><br><span style="color: hsl(0, 100%, 40%);">-                       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            }</span><br><span>    [] RSL.receive(tr_RSL_MEAS_RES(?)) -> value rsl {</span><br><span>                 setverdict(fail, "Received unexpected MEAS RES ", rsl);</span><br><span style="color: hsl(0, 100%, 40%);">-               self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [g_Tmeas_exp.running] g_Tmeas_exp.timeout {</span><br><span>          setverdict(fail, "Didn't receive expected measurement result")</span><br><span style="color: hsl(0, 100%, 40%);">-            self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span> }</span><br><span> </span><br><span>@@ -1312,7 +1319,7 @@</span><br><span>   case (RSL_ALG_ID_A5_7) { return 7; }</span><br><span>         case else {</span><br><span>          setverdict(fail, "Unknwon Algorithm ID");</span><br><span style="color: hsl(0, 100%, 40%);">-             self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -1328,7 +1335,7 @@</span><br><span>       case (RSL_ALG_ID_A5_7) { return '110'B; }</span><br><span>    case else {</span><br><span>          setverdict(fail, "Unknwon Algorithm ID");</span><br><span style="color: hsl(0, 100%, 40%);">-             self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -1405,12 +1412,13 @@</span><br><span>     [] as_l1_dcch();</span><br><span>     [] L1CTL.receive { repeat; }</span><br><span>         [g_Tmeas_exp.running] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-               /* as_meas_res() would have done setverdict(fail) / self.stop in case</span><br><span style="color: hsl(120, 100%, 40%);">+         /* as_meas_res() would have done setverdict(fail) / mtc.stop in case</span><br><span>                  * of any earlier errors, so if we reach this timeout, we're good */</span><br><span>             setverdict(pass);</span><br><span>            }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "No MEAS RES received at all");</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    f_rsl_chan_deact();</span><br><span>@@ -1494,6 +1502,7 @@</span><br><span>  [] RSL.receive { repeat };</span><br><span>   [] T.timeout {</span><br><span>               setverdict(fail, "No CONN FAIL IND received");</span><br><span style="color: hsl(120, 100%, 40%);">+              mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    f_rsl_chan_deact();</span><br><span>@@ -1639,6 +1648,7 @@</span><br><span>                  }</span><br><span>            [not cfg.exp_overload]  RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_PAGING_LOAD_IND(0))) {</span><br><span>                    setverdict(fail, "Unexpected PCH Overload");</span><br><span style="color: hsl(120, 100%, 40%);">+                        mtc.stop;</span><br><span>                    }</span><br><span>            [cfg.exp_load_ind] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_PAGING_LOAD_IND)) {</span><br><span>                    log("Rx LOAD_IND");</span><br><span>@@ -1664,6 +1674,7 @@</span><br><span>        [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_PAGING_LOAD_IND)) { repeat; }</span><br><span>  [] T_wait.timeout {</span><br><span>          setverdict(fail, "Waiting for empty paging queue");</span><br><span style="color: hsl(120, 100%, 40%);">+         mtc.stop;</span><br><span>            }</span><br><span>    [] as_rsl_res_ind();</span><br><span>         }</span><br><span>@@ -1830,7 +1841,7 @@</span><br><span>            if (not match(rr, tr_IMM_ASS(42, ?, 5, ?, ?))) {</span><br><span>                     /* FIXME: Why are we seeing paging requests on PCH/AGCH? */</span><br><span>                  //setverdict(fail, "Unexpected IMM-ASS values on AGCH: ", rr);</span><br><span style="color: hsl(0, 100%, 40%);">-                        //self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                  //mtc.stop;</span><br><span>          } else {</span><br><span>                     num_rx := num_rx+1;</span><br><span>          }</span><br><span>@@ -1843,6 +1854,7 @@</span><br><span>    log("AGCH test: " & res_str);</span><br><span>  if (num_rx + num_del != num_tx) {</span><br><span>            setverdict(fail, "RX + DEL != TX ?!?: " & res_str);</span><br><span style="color: hsl(120, 100%, 40%);">+             mtc.stop</span><br><span>     }</span><br><span>    rx_ratio := int2float(num_rx) / int2float(num_tx);</span><br><span>   if (rx_ratio < exp_pass*0.8 or rx_ratio > exp_pass*1.2) {</span><br><span>@@ -1850,6 +1862,7 @@</span><br><span>      } else {</span><br><span>             setverdict(pass);</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+     f_shutdown();</span><br><span> }</span><br><span> </span><br><span> /* send a long burst of 1000 IMM.ASS with 20ms spacing (50 per s); expect 75% of them to be deleted */</span><br><span>@@ -1903,6 +1916,7 @@</span><br><span> function f_ensure_si_vec_contains(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false) {</span><br><span>  if (not f_si_vecslot_contains(arr[tc], key, ext_bcch)) {</span><br><span>             setverdict(fail, "No ", key, " in TC=", tc, "!");</span><br><span style="color: hsl(120, 100%, 40%);">+               mtc.stop;</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -1922,7 +1936,7 @@</span><br><span>   var integer count := 0;</span><br><span>      if (sizeof(arr) < m) {</span><br><span>            setverdict(fail, "Error: Insufficient SI in array");</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span>    for (var integer i:= 0; i < m; i := i + 1) {</span><br><span>              var integer fn_mod51 := arr[i].frame_number mod 51;</span><br><span>@@ -1944,6 +1958,7 @@</span><br><span> function f_ensure_si_vec_contains_n_of_m(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false, integer n, integer m) {</span><br><span>  if (not f_si_vecslot_contains_n_of_m(arr[tc], key, ext_bcch, n, m)) {</span><br><span>                setverdict(fail, "Not ", n, "/", m, " of ", key, " in TC=", tc, "!");</span><br><span style="color: hsl(120, 100%, 40%);">+               mtc.stop;</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -1965,6 +1980,7 @@</span><br><span> function f_ensure_si_vec_contains_only(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false) {</span><br><span>   if (not f_si_vecslot_contains_only(arr[tc], key, ext_bcch)) {</span><br><span>                setverdict(fail, "Not all ", key, " in TC=", tc, "!");</span><br><span style="color: hsl(120, 100%, 40%);">+          mtc.stop;</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -1994,6 +2010,7 @@</span><br><span>   for (i := 0; i < sizeof(si_per_tc); i := i + 1) {</span><br><span>                 if (sizeof(si_per_tc[i]) == 0) {</span><br><span>                     setverdict(fail, "No SI messages for TC=", i);</span><br><span style="color: hsl(120, 100%, 40%);">+                      mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    if (cfg.si1_present) {</span><br><span>@@ -2076,6 +2093,7 @@</span><br><span>               }</span><br><span>            if (f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_13alt)) {</span><br><span>                   setverdict(fail, "Cannot have SI13alt and SI13");</span><br><span style="color: hsl(120, 100%, 40%);">+                   mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    if (cfg.si16_present or cfg.si17_present) {</span><br><span>@@ -2086,6 +2104,7 @@</span><br><span>          }</span><br><span>            if (f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_22)) {</span><br><span>                      setverdict(fail, "Cannot have SI16/SI17 and SI22!");</span><br><span style="color: hsl(120, 100%, 40%);">+                        mtc.stop;</span><br><span>            }</span><br><span>            if (not cfg.bcch_extended) {</span><br><span>                         testcase.stop("Error: SI16/SI17 requires BCCH Extd!");</span><br><span>@@ -2131,6 +2150,7 @@</span><br><span>             }</span><br><span>            if (f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_13)) {</span><br><span>                      setverdict(fail, "Cannot have SI13alt and SI13");</span><br><span style="color: hsl(120, 100%, 40%);">+                   mtc.stop;</span><br><span>            }</span><br><span>            if (not cfg.bcch_extended) {</span><br><span>                         f_ensure_si_vec_contains_n_of_m(si_per_tc, 4, SYSTEM_INFORMATION_TYPE_13alt, false, 1, 4);</span><br><span>@@ -2162,6 +2182,7 @@</span><br><span>                   f_ensure_si_vec_contains_n_of_m(si_per_tc, 4, SYSTEM_INFORMATION_TYPE_21, true, 1, 4);</span><br><span>                       if (f_si_vecslot_contains(si_per_tc[4], SYSTEM_INFORMATION_TYPE_21)) {</span><br><span>                               setverdict(fail, "Cannot have SI21 on BCCH Norm if BCCH Extd enabled!");</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>            }</span><br><span>    }</span><br><span>@@ -2176,6 +2197,7 @@</span><br><span>            if (f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_16) or</span><br><span>                  f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_17)) {</span><br><span>                      setverdict(fail, "Cannot have SI16/SI17 and SI22!");</span><br><span style="color: hsl(120, 100%, 40%);">+                        mtc.stop;</span><br><span>            }</span><br><span>            if (not cfg.bcch_extended) {</span><br><span>                         testcase.stop("Error: SI22 requires BCCH Extd!");</span><br><span>@@ -2337,12 +2359,14 @@</span><br><span>                }</span><br><span>    [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_ERROR_REPORT(?))) {</span><br><span>            setverdict(fail, "Wrong cause in RSL ERR REP");</span><br><span style="color: hsl(120, 100%, 40%);">+             mtc.stop;</span><br><span>            }</span><br><span>    [] RSL_CCHAN.receive {</span><br><span>               repeat;</span><br><span>              }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for RSL ERR REP");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -2489,7 +2513,7 @@</span><br><span>       alt {</span><br><span>        [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RTS_REQ(bts_nr))) {</span><br><span>                setverdict(fail, "PCU RTS.req before PDCH active?");</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [] PCU.receive { repeat; }</span><br><span>   [] T.timeout { }</span><br><span>@@ -2507,15 +2531,16 @@</span><br><span>   [not exp_success] PCU.receive(t_SD_PCUIF(g_pcu_conn_id,</span><br><span>                                               tr_PCUIF_RTS_REQ(bts_nr, trx_nr, ts_nr))) {</span><br><span>                 setverdict(fail, "Unexpected RTS.req for supposedly failing activation");</span><br><span style="color: hsl(0, 100%, 40%);">-             self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RTS_REQ)) {</span><br><span>                setverdict(fail, "RTS.req for wrong TRX/TS");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [] PCU.receive { repeat; }</span><br><span>   [exp_success] T.timeout {</span><br><span>            setverdict(fail, "Timeout waiting for PCU RTS.req");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span>            }</span><br><span>    [not exp_success] T.timeout {</span><br><span>                setverdict(pass);</span><br><span>@@ -2536,7 +2561,7 @@</span><br><span>    alt {</span><br><span>        [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RTS_REQ(bts_nr, trx_nr, ts_nr))) {</span><br><span>                 setverdict(fail, "Received unexpected PCU RTS.req");</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [] PCU.receive { repeat; }</span><br><span>   [] T.timeout {</span><br><span>@@ -2607,7 +2632,7 @@</span><br><span>       [] PCU.receive { repeat; }</span><br><span>   [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for SI13");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -2641,6 +2666,7 @@</span><br><span>       [] PCU.receive { repeat; }</span><br><span>   [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for RTS.ind");</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -2714,6 +2740,7 @@</span><br><span>       [] L1CTL.receive { repeat; }</span><br><span>         [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for PCU-originated AGCH block on Um");</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -2738,6 +2765,7 @@</span><br><span>       [] L1CTL.receive { repeat; }</span><br><span>         [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for PCU-originated AGCH block on Um");</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -2754,7 +2782,7 @@</span><br><span>               var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra));</span><br><span>           if (fn == fn_last) {</span><br><span>                         setverdict(fail, "Two RACH in same FN?!?");</span><br><span style="color: hsl(0, 100%, 40%);">-                   self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            fn_last := fn;</span><br><span> </span><br><span>@@ -2766,12 +2794,12 @@</span><br><span>                         }</span><br><span>            [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RACH_IND)) {</span><br><span>                       setverdict(fail, "Unexpected RACH IND");</span><br><span style="color: hsl(0, 100%, 40%);">-                      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span>            [] PCU.receive { repeat; }</span><br><span>           [] T.timeout {</span><br><span>                       setverdict(fail, "Timeout waiting for RACH IND");</span><br><span style="color: hsl(0, 100%, 40%);">-                     self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span>            }</span><br><span>    }</span><br><span>@@ -2810,12 +2838,12 @@</span><br><span>                  }</span><br><span>            [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_PAG_REQ)) {</span><br><span>                        setverdict(fail, "Unexpected PAGING REQ");</span><br><span style="color: hsl(0, 100%, 40%);">-                    self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span>            [] PCU.receive { repeat; }</span><br><span>           [] T.timeout {</span><br><span>                       setverdict(fail, "Timeout waiting for PAGING REQ");</span><br><span style="color: hsl(0, 100%, 40%);">-                   self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span>            }</span><br><span>    }</span><br><span>@@ -2837,7 +2865,7 @@</span><br><span>    [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd {</span><br><span>               if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '1'B) {</span><br><span>                     setverdict(fail, "PCUIF_INFO_IND PDCH_MASK not '1' after PDCH ACT");</span><br><span style="color: hsl(0, 100%, 40%);">-                  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            }</span><br><span>    [] PCU.receive { repeat; }</span><br><span>@@ -2858,7 +2886,7 @@</span><br><span>   [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd {</span><br><span>               if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '0'B) {</span><br><span>                     setverdict(fail, "PCUIF_INFO_IND PDCH_MASK not '0' after PDCH DEACT");</span><br><span style="color: hsl(0, 100%, 40%);">-                        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            }</span><br><span>    [] PCU.receive { repeat; }</span><br><span>@@ -3021,7 +3049,7 @@</span><br><span>   [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd {</span><br><span>               if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '1'B) {</span><br><span>                     setverdict(fail, "PCUIF_INFO_IND PDCH_MASK not '1' after PDCH ACT");</span><br><span style="color: hsl(0, 100%, 40%);">-                  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            }</span><br><span>    [] PCU.receive { repeat; }</span><br><span>@@ -3044,7 +3072,7 @@</span><br><span>   [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd {</span><br><span>               if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '0'B) {</span><br><span>                     setverdict(fail, "PCUIF_INFO_IND PDCH_MASK not '0' after PDCH DEACT");</span><br><span style="color: hsl(0, 100%, 40%);">-                        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            }</span><br><span>    [] PCU.receive { repeat; }</span><br><span>@@ -3130,7 +3158,7 @@</span><br><span>   [] RSL.receive(tr_RSL_IPA_PDCH_ACT_NACK(g_chan_nr, ?));</span><br><span>      [] RSL.receive(tr_RSL_IPA_PDCH_ACT_ACK(g_chan_nr, ?)) {</span><br><span>              setverdict(fail, "Unexpected PDCH ACT ACK");</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [] RSL.receive { repeat; }</span><br><span>   }</span><br><span>@@ -3254,6 +3282,7 @@</span><br><span>                    setverdict(pass);</span><br><span>            } else {</span><br><span>                     setverdict(fail, "Unexpected EST IND with L3 in ", tc);</span><br><span style="color: hsl(120, 100%, 40%);">+                     mtc.stop;</span><br><span>            }</span><br><span>            }</span><br><span>    [tc.l3 == ''O] RSL.receive(tr_RSL_EST_IND_NOL3(g_chan_nr, tc.link_id)) {</span><br><span>@@ -3261,10 +3290,12 @@</span><br><span>                   setverdict(pass);</span><br><span>            } else {</span><br><span>                     setverdict(fail, "Unexpected EST IND without L3 in ", tc);</span><br><span style="color: hsl(120, 100%, 40%);">+                  mtc.stop;</span><br><span>            }</span><br><span>            }</span><br><span>    [tc.exp] T.timeout {</span><br><span>                 setverdict(fail, "Timeout waiting for EST IND");</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [not tc.exp] T.timeout {</span><br><span>             setverdict(pass);</span><br><span>@@ -3326,7 +3357,7 @@</span><br><span>    [] L1CTL.receive { repeat; }</span><br><span>         [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for SABM");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> </span><br><span>@@ -3381,7 +3412,7 @@</span><br><span>        alt {</span><br><span>        [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for LAPDm ", exp);</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [] as_l1_exp_lapdm(exp);</span><br><span>     }</span><br><span>@@ -3397,7 +3428,7 @@</span><br><span>    [l3 == ''O] RSL.receive(tr_RSL_EST_IND_NOL3(g_chan_nr, link_id));</span><br><span>    [] RSL.receive(tr_RSL_ERROR_IND(g_chan_nr, link_id, ?)) {</span><br><span>            setverdict(fail, "Failing due to RSL_ERROR_IND");</span><br><span style="color: hsl(0, 100%, 40%);">-             self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    [] RSL.receive { repeat; }</span><br><span>   }</span><br><span>@@ -3613,6 +3644,7 @@</span><br><span>            }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for UNIT_DATA_IND");</span><br><span style="color: hsl(120, 100%, 40%);">+              mtc.stop;</span><br><span>            }</span><br><span>    [] RSL.receive { repeat; }</span><br><span>   }</span><br><span>@@ -3723,12 +3755,13 @@</span><br><span>          lf.ab := dec_LapdmFrameAB(enc);</span><br><span>      } else {</span><br><span>             setverdict(fail, "unsupported frame type");</span><br><span style="color: hsl(0, 100%, 40%);">-           self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span> </span><br><span>        /* check if decoder result matches expectation */</span><br><span>    if (not match(lf, exp_match)) {</span><br><span>              setverdict(fail, name, ": decoded LAPDm doesn't match");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span>    } else {</span><br><span>             log(name, ": matched");</span><br><span>            setverdict(pass);</span><br><span>@@ -3738,6 +3771,7 @@</span><br><span>    reenc := enc_LapdmFrame(lf);</span><br><span>         if (enc != reenc) {</span><br><span>          setverdict(fail, name, ": re-encoded LAPDm frame doesn't match");</span><br><span style="color: hsl(120, 100%, 40%);">+               mtc.stop;</span><br><span>    } else {</span><br><span>             setverdict(pass);</span><br><span>    }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9904">change 9904</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/9904"/><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: merged </div>
<div style="display:none"> Gerrit-Change-Id: Iba59a69127e845cadbe9aaa1dabd87ff5ce8b43b </div>
<div style="display:none"> Gerrit-Change-Number: 9904 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>