<p>laforge <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14446">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts: clean up old tests and make them work again<br><br>Change-Id: Ie9d73cd9777b6fdda5115ed5dc103979d79c8cd9<br>---<br>M bts/BTS_Tests_LAPDm.ttcn<br>1 file changed, 83 insertions(+), 133 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bts/BTS_Tests_LAPDm.ttcn b/bts/BTS_Tests_LAPDm.ttcn</span><br><span>index ae87e6d..da78ccb 100644</span><br><span>--- a/bts/BTS_Tests_LAPDm.ttcn</span><br><span>+++ b/bts/BTS_Tests_LAPDm.ttcn</span><br><span>@@ -71,201 +71,152 @@</span><br><span>  sapi := sapi,</span><br><span>        lapdm := frame</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-/* template for a valid SABM frame */</span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmFrame LAPDm_B_SABM(template GsmSapi sapi, octetstring payload)  := {</span><br><span style="color: hsl(0, 100%, 40%);">-      ab := {</span><br><span style="color: hsl(0, 100%, 40%);">-         addr := tr_LapdmAddr(sapi, false),</span><br><span style="color: hsl(0, 100%, 40%);">-              ctrl := tr_LapdmCtrlSABM(true),</span><br><span style="color: hsl(0, 100%, 40%);">-         len := lengthof(payload),</span><br><span style="color: hsl(0, 100%, 40%);">-               m := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             el := 1,</span><br><span style="color: hsl(0, 100%, 40%);">-                payload := payload</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* template for a valid UA frame */</span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmFrame tr_LAPDm_B_UA(template GsmSapi sapi, template octetstring payload)  := {</span><br><span style="color: hsl(0, 100%, 40%);">-   ab := {</span><br><span style="color: hsl(0, 100%, 40%);">-         addr := tr_LapdmAddr(sapi, false),</span><br><span style="color: hsl(0, 100%, 40%);">-              ctrl := tr_LapdmCtrlUA(true),</span><br><span style="color: hsl(0, 100%, 40%);">-           len := ?,</span><br><span style="color: hsl(0, 100%, 40%);">-               m := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             el := 1,</span><br><span style="color: hsl(0, 100%, 40%);">-                payload := payload</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* template for a valid UA frame */</span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmFrame LAPDm_B_UA(template GsmSapi sapi, octetstring payload)  := {</span><br><span style="color: hsl(0, 100%, 40%);">-   ab := {</span><br><span style="color: hsl(0, 100%, 40%);">-         addr := tr_LapdmAddr(sapi, false),</span><br><span style="color: hsl(0, 100%, 40%);">-              ctrl := tr_LapdmCtrlUA(true),</span><br><span style="color: hsl(0, 100%, 40%);">-           len := lengthof(payload),</span><br><span style="color: hsl(0, 100%, 40%);">-               m := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             el := 1,</span><br><span style="color: hsl(0, 100%, 40%);">-                payload := payload</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* template for a valid UI frame */</span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmFrame LAPDm_B_UI(template GsmSapi sapi, octetstring payload)  := {</span><br><span style="color: hsl(0, 100%, 40%);">-   ab := {</span><br><span style="color: hsl(0, 100%, 40%);">-         addr := tr_LapdmAddr(sapi, true),</span><br><span style="color: hsl(0, 100%, 40%);">-               ctrl := tr_LapdmCtrlUI(false),</span><br><span style="color: hsl(0, 100%, 40%);">-          len := lengthof(payload),</span><br><span style="color: hsl(0, 100%, 40%);">-               m := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             el := 1,</span><br><span style="color: hsl(0, 100%, 40%);">-                payload := payload</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmFrame t_nopayload(template GsmSapi sapi) := {</span><br><span style="color: hsl(0, 100%, 40%);">-   ab := {</span><br><span style="color: hsl(0, 100%, 40%);">-         addr := tr_LapdmAddr(sapi, true),</span><br><span style="color: hsl(0, 100%, 40%);">-               ctrl := ?,</span><br><span style="color: hsl(0, 100%, 40%);">-              len := 0,</span><br><span style="color: hsl(0, 100%, 40%);">-               m := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             el := 1,</span><br><span style="color: hsl(0, 100%, 40%);">-                payload := ''O</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmFrame LAPDm_B_DISC(template GsmSapi sapi) modifies t_nopayload := {</span><br><span style="color: hsl(0, 100%, 40%);">-     ab := {</span><br><span style="color: hsl(0, 100%, 40%);">-         ctrl := tr_LapdmCtrlDISC(true)</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmFrame LAPDm_B_RR(template GsmSapi sapi, template uint3_t nr) modifies t_nopayload := {</span><br><span style="color: hsl(0, 100%, 40%);">-  ab := {</span><br><span style="color: hsl(0, 100%, 40%);">-         ctrl := tr_LapdmCtrlRR(nr, false)</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-function f_test_sabm_results_in_ua(uint8_t sapi, boolean use_sacch, octetstring payload) runs on lapdm_test_CT return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_test_sabm_results_in_ua(uint8_t sapi, boolean use_sacch, octetstring payload) runs on ConnHdlr return boolean {</span><br><span>        var LAPDm_ph_data phd;</span><br><span>       var boolean result := false;</span><br><span>         timer T := 5.0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     f_establish_dcch();</span><br><span style="color: hsl(0, 100%, 40%);">-     LAPDM.send(t_PH_DATA(sapi, use_sacch, LAPDm_B_SABM(sapi, payload)));</span><br><span style="color: hsl(0, 100%, 40%);">-    log("====> expecting ", t_PH_DATA(sapi, use_sacch, LAPDm_B_UA(sapi, payload)));</span><br><span style="color: hsl(120, 100%, 40%);">+  LAPDM.send(t_PH_DATA(sapi, use_sacch, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=false, l3:=payload)));</span><br><span>  T.start</span><br><span>      alt {</span><br><span style="color: hsl(0, 100%, 40%);">-           [] LAPDM.receive(t_PH_DATA(?, use_sacch, LAPDm_B_UA(sapi, payload))) { result := true; }</span><br><span style="color: hsl(0, 100%, 40%);">-                [] LAPDM.receive(t_PH_DATA(?, use_sacch, ?)) -> value phd { log("Other msg on DCH: ", phd); repeat; }</span><br><span style="color: hsl(0, 100%, 40%);">-              [] LAPDM.receive(t_PH_DATA(?, ?, ?)) -> value phd { log("Other PH-DATA: ", phd); repeat; }</span><br><span style="color: hsl(120, 100%, 40%);">+               [] LAPDM.receive(t_PH_DATA(?, use_sacch, tr_LAPDm_UA(sapi, cr_MT_RSP, f:=false, l3:=payload))) { result := true; }</span><br><span style="color: hsl(120, 100%, 40%);">+            [] RSL.receive {repeat;}</span><br><span style="color: hsl(120, 100%, 40%);">+              [] LAPDM.receive { repeat; }</span><br><span>                 [] T.timeout { }</span><br><span>     }</span><br><span style="color: hsl(0, 100%, 40%);">-       LAPDM.send(t_PH_DATA(sapi, use_sacch, LAPDm_B_RR(sapi, 0)));</span><br><span style="color: hsl(0, 100%, 40%);">-    f_release_dcch();</span><br><span style="color: hsl(120, 100%, 40%);">+     LAPDM.send(t_PH_DATA(sapi, use_sacch, ts_LAPDm_RR(sapi, c_r:=cr_MT_CMD, p:=false, nr:=0)));</span><br><span>  return result;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-testcase TC_sabm_ua_dcch_sapi0() runs on lapdm_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">- f_lapdm_init();</span><br><span style="color: hsl(120, 100%, 40%);">+function f_TC_sabm_ua_dcch_sapi0(charstring id) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+   fp_common_init();</span><br><span style="color: hsl(120, 100%, 40%);">+     RSL.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+    LAPDM.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+  var default d := activate(as_ignore_background());</span><br><span>   if (not f_test_sabm_results_in_ua(0, false, 'FEFE'O)) {</span><br><span>              setverdict(fail);</span><br><span>    }</span><br><span>    setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+     deactivate(d);</span><br><span style="color: hsl(120, 100%, 40%);">+        fp_common_fini();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-testcase TC_sabm_ua_dcch_sapi0_nopayload() runs on lapdm_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-    f_lapdm_init();</span><br><span style="color: hsl(120, 100%, 40%);">+function f_TC_sabm_ua_dcch_sapi0_nopayload(charstring id) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+ fp_common_init();</span><br><span style="color: hsl(120, 100%, 40%);">+     RSL.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+    LAPDM.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+  var default d := activate(as_ignore_background());</span><br><span>   if (f_test_sabm_results_in_ua(0, false, ''O)) {</span><br><span>              setverdict(fail, "Initial SABM/UA must contain L3 payload but BTS accepts without");</span><br><span>       }</span><br><span>    setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+     deactivate(d);</span><br><span style="color: hsl(120, 100%, 40%);">+        fp_common_fini();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-testcase TC_sabm_ua_dcch_sapi3() runs on lapdm_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-      f_lapdm_init();</span><br><span style="color: hsl(120, 100%, 40%);">+function f_TC_sabm_ua_dcch_sapi3(charstring id) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+   fp_common_init();</span><br><span style="color: hsl(120, 100%, 40%);">+     RSL.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+    LAPDM.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+  var default d := activate(as_ignore_background());</span><br><span>   if (f_test_sabm_results_in_ua(3, false, 'FEFE'O)) {</span><br><span>          setverdict(fail, "Initial SABM/UA must be on SAPI0, but BTS accepts SAPI=3");</span><br><span>      }</span><br><span>    setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+     deactivate(d);</span><br><span style="color: hsl(120, 100%, 40%);">+        fp_common_fini();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-testcase TC_sabm_ua_dcch_sapi4() runs on lapdm_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-      f_lapdm_init();</span><br><span style="color: hsl(120, 100%, 40%);">+function f_TC_sabm_ua_dcch_sapi4(charstring id) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+   fp_common_init();</span><br><span style="color: hsl(120, 100%, 40%);">+     RSL.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+    LAPDM.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+  var default d := activate(as_ignore_background());</span><br><span>   if (f_test_sabm_results_in_ua(4, false, 'FEFE'O)) {</span><br><span>          setverdict(fail, "Initial SABM/UA must be on SAPI0, but BTS accepts SAPI=4");</span><br><span>      }</span><br><span>    setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+     deactivate(d);</span><br><span style="color: hsl(120, 100%, 40%);">+        fp_common_fini();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-testcase TC_sabm_contention() runs on lapdm_test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_sabm_ua_dcch_sapi0() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+   var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN));</span><br><span style="color: hsl(120, 100%, 40%);">+    f_testmatrix_each_chan(pars, refers(f_TC_sabm_ua_dcch_sapi0));</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%);">+testcase TC_sabm_ua_dcch_sapi0_nopayload() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN));</span><br><span style="color: hsl(120, 100%, 40%);">+    f_testmatrix_each_chan(pars, refers(f_TC_sabm_ua_dcch_sapi0_nopayload));</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%);">+testcase TC_sabm_ua_dcch_sapi3() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN));</span><br><span style="color: hsl(120, 100%, 40%);">+    f_testmatrix_each_chan(pars, refers(f_TC_sabm_ua_dcch_sapi3));</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%);">+testcase TC_sabm_ua_dcch_sapi4() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+       var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN));</span><br><span style="color: hsl(120, 100%, 40%);">+    f_testmatrix_each_chan(pars, refers(f_TC_sabm_ua_dcch_sapi4));</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%);">+function f_TC_sabm_contention(charstring id) runs on ConnHdlr {</span><br><span>         var LAPDm_ph_data phd;</span><br><span>       const octetstring payload := '0102030405'O;</span><br><span>  const GsmSapi sapi := 0;</span><br><span>     const boolean use_sacch := false;</span><br><span>    timer T := 5.0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     f_lapdm_init();</span><br><span style="color: hsl(120, 100%, 40%);">+       fp_common_init();</span><br><span style="color: hsl(120, 100%, 40%);">+     RSL.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+    LAPDM.clear;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        f_establish_dcch();</span><br><span>  /* first frame is our real SABM */</span><br><span style="color: hsl(0, 100%, 40%);">-      LAPDM.send(t_PH_DATA(sapi, use_sacch, LAPDm_B_SABM(sapi, payload)));</span><br><span style="color: hsl(120, 100%, 40%);">+  LAPDM.send(t_PH_DATA(sapi, use_sacch, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=false, l3:=payload)));</span><br><span>  /* second frame is a SABM with different payload, which BTS has to ignore according to 8.4.1.4 */</span><br><span style="color: hsl(0, 100%, 40%);">-       LAPDM.send(t_PH_DATA(sapi, use_sacch, LAPDm_B_SABM(sapi, 'ABCDEF'O)));</span><br><span style="color: hsl(0, 100%, 40%);">-  log("====> expecting ", t_PH_DATA(sapi, use_sacch, LAPDm_B_UA(sapi, payload)));</span><br><span style="color: hsl(120, 100%, 40%);">+  LAPDM.send(t_PH_DATA(sapi, use_sacch, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=false, l3:='ABCDEF'O)));</span><br><span>        T.start</span><br><span>      alt {</span><br><span style="color: hsl(0, 100%, 40%);">-           [] LAPDM.receive(t_PH_DATA(?, use_sacch, LAPDm_B_UA(sapi, payload))) { setverdict(pass); repeat; }</span><br><span style="color: hsl(0, 100%, 40%);">-              [] LAPDM.receive(t_PH_DATA(?, use_sacch, tr_LAPDm_B_UA(sapi, ?))) {</span><br><span style="color: hsl(120, 100%, 40%);">+           [] LAPDM.receive(t_PH_DATA(?, use_sacch, tr_LAPDm_UA(sapi, cr_MT_RSP, f:=false, l3:=payload))) { setverdict(pass); repeat; }</span><br><span style="color: hsl(120, 100%, 40%);">+          [] LAPDM.receive(t_PH_DATA(?, use_sacch, tr_LAPDm_UA(sapi, cr_MT_RSP, f:=false, l3:=?))) {</span><br><span>                   setverdict(fail, "Second SABM was responded to during contention resolution");</span><br><span style="color: hsl(0, 100%, 40%);">-                }</span><br><span style="color: hsl(120, 100%, 40%);">+                     }</span><br><span style="color: hsl(120, 100%, 40%);">+             [] RSL.receive {repeat;}</span><br><span>             [] LAPDM.receive { repeat };</span><br><span>                 [] T.timeout { }</span><br><span>     }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_release_dcch();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   fp_common_fini();</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%);">+testcase TC_sabm_contention() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+       var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN));</span><br><span style="color: hsl(120, 100%, 40%);">+    f_testmatrix_each_chan(pars, refers(f_TC_sabm_contention));</span><br><span> }</span><br><span> </span><br><span> /* we test that a re-transmitted SABM with identical payload will result in the retransmission of a</span><br><span>   * UA. This is required during the contention resolution procedure as specified in 8.4.1.4 */</span><br><span style="color: hsl(0, 100%, 40%);">-testcase TC_sabm_retransmit() runs on lapdm_test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_TC_sabm_retransmit(charstring id) runs on ConnHdlr {</span><br><span>  const octetstring payload := '00FEFEDEADBEEF'O;</span><br><span style="color: hsl(0, 100%, 40%);">- f_lapdm_init();</span><br><span style="color: hsl(120, 100%, 40%);">+       fp_common_init();</span><br><span style="color: hsl(120, 100%, 40%);">+     RSL.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+    LAPDM.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+  var default d := activate(as_ignore_background());</span><br><span>   if (not f_test_sabm_results_in_ua(0, false, payload)) {</span><br><span style="color: hsl(0, 100%, 40%);">-         setverdict(fail, "UA not received for first SABM");</span><br><span style="color: hsl(120, 100%, 40%);">+         setverdict(fail);</span><br><span>    }</span><br><span>    if (not f_test_sabm_results_in_ua(0, false, payload)) {</span><br><span style="color: hsl(0, 100%, 40%);">-         setverdict(fail, "UA not received for second SABM");</span><br><span style="color: hsl(120, 100%, 40%);">+                setverdict(fail);</span><br><span>    }</span><br><span>    setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+     deactivate(d);</span><br><span style="color: hsl(120, 100%, 40%);">+        fp_common_fini();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-testcase TC_foo() runs on lapdm_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-     var LapdmFrame lf;</span><br><span style="color: hsl(0, 100%, 40%);">-/*</span><br><span style="color: hsl(0, 100%, 40%);">-    var LapdmFrame lf := valueof(LAPDm_B_UA(0, ''O));</span><br><span style="color: hsl(0, 100%, 40%);">-       log("ENC UA: ", enc_LapdmFrame(lf));</span><br><span style="color: hsl(0, 100%, 40%);">-  lf := valueof(LAPDm_B_UI(0, ''O));</span><br><span style="color: hsl(0, 100%, 40%);">-      log("ENC UI B: ", enc_LapdmFrame(lf));</span><br><span style="color: hsl(0, 100%, 40%);">-        log("ENC UI B: ", enc_LapdmFrameB(lf.b));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     log("DEC UI AF: ", dec_LapdmAddressField('03'O));</span><br><span style="color: hsl(0, 100%, 40%);">-*/</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   lf := valueof(LAPDm_B_RR(0, 0));</span><br><span style="color: hsl(0, 100%, 40%);">-        log("ENC RR: ", enc_LapdmFrame(lf));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  lf := valueof(LAPDm_B_UA(0, ''O));</span><br><span style="color: hsl(0, 100%, 40%);">-      log("ENC UA: ", enc_LapdmFrame(lf));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  lf := valueof(LAPDm_B_UI(0, ''O));</span><br><span style="color: hsl(0, 100%, 40%);">-      log("ENC UI: ", enc_LapdmFrame(lf));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  log("DEC UI CU: ", dec_LapdmCtrlU('03'O));</span><br><span style="color: hsl(0, 100%, 40%);">-    log("DEC UI CT: ", dec_LapdmCtrl('03'O));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     log("DEC UA: ", dec_LapdmFrameAB('017301'O));</span><br><span style="color: hsl(0, 100%, 40%);">- log("DEC UI: ", dec_LapdmFrameAB('030301'O));</span><br><span style="color: hsl(0, 100%, 40%);">- log("DEC I: ", dec_LapdmFrameAB('030001'O));</span><br><span style="color: hsl(0, 100%, 40%);">-  log("DEC S: ", dec_LapdmFrameAB('030101'O));</span><br><span style="color: hsl(0, 100%, 40%);">-  log("DEC: ", dec_LapdmFrameAB('030301'O));</span><br><span style="color: hsl(0, 100%, 40%);">-    log("DEC: ", dec_LapdmFrameAB('0303012B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B'O));</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_sabm_retransmit() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN));</span><br><span style="color: hsl(120, 100%, 40%);">+    f_testmatrix_each_chan(pars, refers(f_TC_sabm_retransmit));</span><br><span> }</span><br><span> </span><br><span> /*********************************************************************************</span><br><span>@@ -1363,7 +1314,6 @@</span><br><span> }</span><br><span> </span><br><span> control {</span><br><span style="color: hsl(0, 100%, 40%);">-        execute(TC_foo());</span><br><span>   execute(TC_sabm_ua_dcch_sapi0());</span><br><span>    execute(TC_sabm_ua_dcch_sapi0_nopayload());</span><br><span>  execute(TC_sabm_ua_dcch_sapi3());</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14446">change 14446</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/+/14446"/><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: Ie9d73cd9777b6fdda5115ed5dc103979d79c8cd9 </div>
<div style="display:none"> Gerrit-Change-Number: 14446 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>