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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">tests: TbfTest: Unify stderr and stdout to ease debugging<br><br>osmo-pcu code is really verbose, and since log lines printing start and<br>end of tests are sent to a different file, it's really difficult to<br>understand which test outputs what.<br><br>Change-Id: I3e887158e2c9585c360d44f12f995f55861170f2<br>---<br>M tests/Makefile.am<br>M tests/tbf/TbfTest.cpp<br>M tests/tbf/TbfTest.err<br>D tests/tbf/TbfTest.ok<br>M tests/testsuite.at<br>5 files changed, 153 insertions(+), 154 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/Makefile.am b/tests/Makefile.am</span><br><span>index 42dade9..c599636 100644</span><br><span>--- a/tests/Makefile.am</span><br><span>+++ b/tests/Makefile.am</span><br><span>@@ -138,7 +138,7 @@</span><br><span>   testsuite.at $(srcdir)/package.m4 $(TESTSUITE)  \</span><br><span>    rlcmac/RLCMACTest.ok rlcmac/RLCMACTest.err \</span><br><span>         alloc/AllocTest.ok alloc/AllocTest.err \</span><br><span style="color: hsl(0, 100%, 40%);">-        tbf/TbfTest.ok tbf/TbfTest.err \</span><br><span style="color: hsl(120, 100%, 40%);">+      tbf/TbfTest.err \</span><br><span>    bitcomp/BitcompTest.ok bitcomp/BitcompTest.err \</span><br><span>     types/TypesTest.ok types/TypesTest.err \</span><br><span>     ms/MsTest.ok ms/MsTest.err alloc/MslotTest.ok \</span><br><span>diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp</span><br><span>index 8d1b344..5bf94b5 100644</span><br><span>--- a/tests/tbf/TbfTest.cpp</span><br><span>+++ b/tests/tbf/TbfTest.cpp</span><br><span>@@ -61,12 +61,12 @@</span><br><span> static void test_tbf_base()</span><br><span> {</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       OSMO_ASSERT(GPRS_RLCMAC_DL_TBF == reverse(GPRS_RLCMAC_UL_TBF));</span><br><span>      OSMO_ASSERT(GPRS_RLCMAC_UL_TBF == reverse(GPRS_RLCMAC_DL_TBF));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_tlli_update()</span><br><span>@@ -74,7 +74,7 @@</span><br><span>  BTS the_bts;</span><br><span>         GprsMs *ms, *ms_new;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       the_bts.bts_data()->alloc_algorithm = alloc_algorithm_a;</span><br><span>  the_bts.bts_data()->trx[0].pdch[2].enable();</span><br><span>@@ -134,7 +134,7 @@</span><br><span>        OSMO_ASSERT(ul_tbf->ta() == 6);</span><br><span>   OSMO_ASSERT(dl_tbf->ta() == 6);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static uint8_t llc_data[200];</span><br><span>@@ -241,7 +241,7 @@</span><br><span> </span><br><span>         uint8_t rbb[64/8];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span>  gprs_rlcmac_tbf *new_tbf;</span><br><span>@@ -297,7 +297,7 @@</span><br><span>              OSMO_ASSERT(ms->dl_tbf() == NULL);</span><br><span>        }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> /* Receive an ACK */</span><br><span>@@ -322,7 +322,7 @@</span><br><span> </span><br><span>  gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bts = the_bts.bts_data();</span><br><span> </span><br><span>@@ -373,7 +373,7 @@</span><br><span>  TBF_SET_ASS_STATE_DL(dl_tbf, GPRS_RLCMAC_DL_ASS_NONE);</span><br><span>       check_tbf(dl_tbf);</span><br><span>   tbf_free(dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_imsi()</span><br><span>@@ -386,7 +386,7 @@</span><br><span> </span><br><span>   gprs_rlcmac_dl_tbf *dl_tbf[2];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no);</span><br><span> </span><br><span>@@ -431,7 +431,7 @@</span><br><span>    ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000002");</span><br><span>  OSMO_ASSERT(ms1 == NULL);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_exhaustion()</span><br><span>@@ -445,7 +445,7 @@</span><br><span> </span><br><span>     uint8_t buf[256] = {0};</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);</span><br><span>        if (!bssgp_nsi) {</span><br><span>@@ -472,7 +472,7 @@</span><br><span>      }</span><br><span> </span><br><span>        OSMO_ASSERT(rc == -EBUSY);</span><br><span style="color: hsl(0, 100%, 40%);">-      printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> </span><br><span>         gprs_bssgp_destroy();</span><br><span> }</span><br><span>@@ -497,7 +497,7 @@</span><br><span>             abort();</span><br><span>     }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bts = the_bts.bts_data();</span><br><span>    setup_bts(&the_bts, ts_no);</span><br><span>@@ -550,13 +550,13 @@</span><br><span>              msg = ms->dl_tbf()->create_dl_acked_block(fn += 4, 7);</span><br><span>                 fprintf(stderr, "MSG = %s\n", msgb_hexdump(msg));</span><br><span>          if (!msgb_eq_data_print(msg, exp[expected_data - 1], GSM_MACBLOCK_LEN))</span><br><span style="color: hsl(0, 100%, 40%);">-                 printf("%s failed at %u\n", __func__, expected_data);</span><br><span style="color: hsl(120, 100%, 40%);">+                       fprintf(stderr, "%s failed at %u\n", __func__, expected_data);</span><br><span> </span><br><span>                 expected_data += 1;</span><br><span>  }</span><br><span>    OSMO_ASSERT(expected_data-1 == 3);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> </span><br><span>         gprs_bssgp_destroy();</span><br><span> }</span><br><span>@@ -756,7 +756,7 @@</span><br><span>     };</span><br><span> </span><br><span>       if (!msgb_eq_data_print(msg1, exp1, GSM_MACBLOCK_LEN)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                printf("%s test failed on 1st segment!\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+               fprintf(stderr, "%s test failed on 1st segment!\n", __func__);</span><br><span>             return NULL;</span><br><span>         }</span><br><span> </span><br><span>@@ -783,7 +783,7 @@</span><br><span>  };</span><br><span> </span><br><span>       if (!msgb_eq_data_print(msg1, exp2, GSM_MACBLOCK_LEN)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                printf("%s test failed on 2nd segment!\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+               fprintf(stderr, "%s test failed on 2nd segment!\n", __func__);</span><br><span>             return NULL;</span><br><span>         }</span><br><span>    return ul_tbf;</span><br><span>@@ -1712,7 +1712,7 @@</span><br><span>       uint16_t qta = 31;</span><br><span>   gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no);</span><br><span> </span><br><span>@@ -1721,7 +1721,7 @@</span><br><span>  print_ta_tlli(ul_tbf, true);</span><br><span>         send_dl_data(&the_bts, tlli, imsi, (const uint8_t *)"TEST", 4);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_egprs_two_phase_puan(void)</span><br><span>@@ -1738,7 +1738,7 @@</span><br><span>         gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span>  uint8_t test_data[256];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       memset(test_data, 1, sizeof(test_data));</span><br><span> </span><br><span>@@ -1775,7 +1775,7 @@</span><br><span>         print_ta_tlli(ul_tbf, true);</span><br><span>         send_dl_data(&the_bts, tlli, imsi, test_data, sizeof(test_data));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> /*</span><br><span>  * Trigger rach for single block</span><br><span>@@ -1787,7 +1787,7 @@</span><br><span>      uint16_t qta = 31;</span><br><span>   int ts_no = 7;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 4);</span><br><span> </span><br><span>@@ -1806,7 +1806,7 @@</span><br><span> </span><br><span>   OSMO_ASSERT(rc == -EINVAL);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> /*</span><br><span>@@ -1819,7 +1819,7 @@</span><br><span>      uint16_t qta = 31;</span><br><span>   int ts_no = 7;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 4);</span><br><span> </span><br><span>@@ -1850,7 +1850,7 @@</span><br><span> </span><br><span>   OSMO_ASSERT(rc == -EBUSY);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_immediate_assign_rej()</span><br><span>@@ -1870,7 +1870,7 @@</span><br><span>         uint8_t ms_class = 1;</span><br><span>        gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 4);</span><br><span> </span><br><span>@@ -1880,7 +1880,7 @@</span><br><span>       print_ta_tlli(ul_tbf, true);</span><br><span>         send_dl_data(&the_bts, tlli, imsi, (const uint8_t *)"TEST", 4);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static inline void print_ms(const GprsMs *ms, bool old)</span><br><span>@@ -1902,7 +1902,7 @@</span><br><span>         gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span>  GprsMs *ms, *ms1, *ms2;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 4);</span><br><span> </span><br><span>@@ -1950,7 +1950,7 @@</span><br><span>       ms = the_bts.ms_by_tlli(tlli2);</span><br><span>      OSMO_ASSERT(ms == ms2);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_dl_flow_and_rach_two_phase()</span><br><span>@@ -1966,7 +1966,7 @@</span><br><span>       gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span>  GprsMs *ms, *ms1, *ms2;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 1);</span><br><span> </span><br><span>@@ -2008,7 +2008,7 @@</span><br><span>       /* No queued packets should be lost */</span><br><span>       OSMO_ASSERT(ms->llc_queue()->size() == 2);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -2025,7 +2025,7 @@</span><br><span>        gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span>  GprsMs *ms, *ms1, *ms2;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 1);</span><br><span> </span><br><span>@@ -2067,7 +2067,7 @@</span><br><span>       /* No queued packets should be lost */</span><br><span>       OSMO_ASSERT(ms->llc_queue()->size() == 2);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_dl_reuse()</span><br><span>@@ -2085,7 +2085,7 @@</span><br><span>         unsigned i;</span><br><span>  RlcMacUplink_t ulreq = {0};</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 1);</span><br><span> </span><br><span>@@ -2165,7 +2165,7 @@</span><br><span>       OSMO_ASSERT(ms2->dl_tbf());</span><br><span>       OSMO_ASSERT(ms2->dl_tbf()->state_is(GPRS_RLCMAC_FINISHED));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_gprs_egprs()</span><br><span>@@ -2181,7 +2181,7 @@</span><br><span> </span><br><span>   uint8_t buf[256] = {0};</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);</span><br><span>        if (!bssgp_nsi) {</span><br><span>@@ -2202,7 +2202,7 @@</span><br><span>            delay_csec, buf, sizeof(buf));</span><br><span> </span><br><span>   OSMO_ASSERT(rc == -EBUSY);</span><br><span style="color: hsl(0, 100%, 40%);">-      printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> </span><br><span>         gprs_bssgp_destroy();</span><br><span> }</span><br><span>@@ -2230,7 +2230,7 @@</span><br><span>           tbf_free(dl_tbf);</span><br><span> </span><br><span>        if (end) {</span><br><span style="color: hsl(0, 100%, 40%);">-              printf("=== end %s ===\n", test);</span><br><span style="color: hsl(120, 100%, 40%);">+           fprintf(stderr, "=== end %s ===\n", test);</span><br><span>                 gprs_bssgp_destroy();</span><br><span>        }</span><br><span> }</span><br><span>@@ -2243,7 +2243,7 @@</span><br><span>       uint8_t ms_class = 12;</span><br><span>       gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);</span><br><span>        if (!bssgp_nsi) {</span><br><span>@@ -2286,7 +2286,7 @@</span><br><span>    uint8_t ms_class = 11;</span><br><span>       gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);</span><br><span>        if (!bssgp_nsi) {</span><br><span>@@ -2334,7 +2334,7 @@</span><br><span>    gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span>  uint8_t test_data[256];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       memset(test_data, 1, sizeof(test_data));</span><br><span> </span><br><span>@@ -2348,7 +2348,7 @@</span><br><span>         print_ta_tlli(ul_tbf, true);</span><br><span>         send_dl_data(&the_bts, tlli, imsi, test_data, sizeof(test_data));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static gprs_rlcmac_ul_tbf *tbf_li_decoding(BTS *the_bts,</span><br><span>@@ -2479,7 +2479,7 @@</span><br><span>        gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span>  uint8_t test_data[256];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       memset(test_data, 1, sizeof(test_data));</span><br><span> </span><br><span>@@ -2493,7 +2493,7 @@</span><br><span>         print_ta_tlli(ul_tbf, true);</span><br><span>         send_dl_data(&the_bts, tlli, imsi, test_data, sizeof(test_data));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> /*</span><br><span>@@ -2522,7 +2522,7 @@</span><br><span> </span><br><span>  memset(&ul_control_block, 0, sizeof(RlcMacUplink_t));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bts = the_bts.bts_data();</span><br><span> </span><br><span>@@ -2589,7 +2589,7 @@</span><br><span> </span><br><span>    bitvec_free(block);</span><br><span>  tbf_free(dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_egprs_two_phase_spb(void)</span><br><span>@@ -2605,7 +2605,7 @@</span><br><span>  gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span>  uint8_t test_data[256];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       memset(test_data, 1, sizeof(test_data));</span><br><span> </span><br><span>@@ -2619,7 +2619,7 @@</span><br><span>         print_ta_tlli(ul_tbf, true);</span><br><span>         send_dl_data(&the_bts, tlli, imsi, test_data, sizeof(test_data));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_egprs_two_phase()</span><br><span>@@ -2635,7 +2635,7 @@</span><br><span>  gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span>  uint8_t test_data[256];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       memset(test_data, 1, sizeof(test_data));</span><br><span> </span><br><span>@@ -2649,7 +2649,7 @@</span><br><span>         print_ta_tlli(ul_tbf, true);</span><br><span>         send_dl_data(&the_bts, tlli, imsi, test_data, sizeof(test_data));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void establish_and_use_egprs_dl_tbf(BTS *the_bts, int mcs)</span><br><span>@@ -2666,7 +2666,7 @@</span><br><span> </span><br><span>   gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("Testing MCS-%d\n", mcs);</span><br><span style="color: hsl(120, 100%, 40%);">+    fprintf(stderr, "Testing MCS-%d\n", mcs);</span><br><span> </span><br><span>      memset(test_data, 1, sizeof(test_data));</span><br><span>     the_bts->bts_data()->initial_mcs_dl = mcs;</span><br><span>@@ -2794,7 +2794,7 @@</span><br><span>     struct gprs_rlc_dl_header_egprs_3 *egprs3;</span><br><span>   struct gprs_rlc_dl_header_egprs_2 *egprs2;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("Testing retx for MCS %u to reseg_mcs %u\n", mcs, demanded_mcs);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "Testing retx for MCS %u to reseg_mcs %u\n", mcs, demanded_mcs);</span><br><span> </span><br><span>       dl_tbf = tbf_init(the_bts, mcs);</span><br><span> </span><br><span>@@ -2874,7 +2874,7 @@</span><br><span>         struct msgb *msg;</span><br><span>    struct gprs_rlc_dl_header_egprs_3 *egprs3;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("Testing retx for MCS %u to reseg_mcs %u\n", mcs, demanded_mcs);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "Testing retx for MCS %u to reseg_mcs %u\n", mcs, demanded_mcs);</span><br><span> </span><br><span>       dl_tbf = tbf_init(the_bts, mcs);</span><br><span> </span><br><span>@@ -2962,7 +2962,7 @@</span><br><span>         gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span>  struct msgb *msg;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   printf("Testing retx for MCS %u - %u\n", mcs, demanded_mcs);</span><br><span style="color: hsl(120, 100%, 40%);">+        fprintf(stderr, "Testing retx for MCS %u - %u\n", mcs, demanded_mcs);</span><br><span> </span><br><span>  dl_tbf = tbf_init(the_bts, mcs);</span><br><span> </span><br><span>@@ -3057,7 +3057,7 @@</span><br><span>         gprs_rlcmac_bts *bts;</span><br><span>        uint8_t ts_no = 4;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bts = the_bts.bts_data();</span><br><span>    bts->cs_downgrade_threshold = 0;</span><br><span>@@ -3077,7 +3077,7 @@</span><br><span>  establish_and_use_egprs_dl_tbf_for_retx(&the_bts, 7, 5);</span><br><span>         establish_and_use_egprs_dl_tbf_for_retx(&the_bts, 9, 6);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_egprs_spb_dl(void)</span><br><span>@@ -3086,7 +3086,7 @@</span><br><span>         gprs_rlcmac_bts *bts;</span><br><span>        uint8_t ts_no = 4;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bts = the_bts.bts_data();</span><br><span>    bts->cs_downgrade_threshold = 0;</span><br><span>@@ -3108,7 +3108,7 @@</span><br><span>  /* check MCS6->(MCS3+MCS3)->MCS6 case */</span><br><span>       egprs_spb_to_normal_validation(&the_bts, 6, 3);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_tbf_egprs_dl()</span><br><span>@@ -3118,7 +3118,7 @@</span><br><span>         uint8_t ts_no = 4;</span><br><span>   int i;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       bts = the_bts.bts_data();</span><br><span> </span><br><span>@@ -3131,7 +3131,7 @@</span><br><span>        for (i = 1; i <= 9; i++)</span><br><span>          establish_and_use_egprs_dl_tbf(&the_bts, i);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -3145,7 +3145,7 @@</span><br><span>        uint32_t tlli = 0xffeeddcc;</span><br><span>  struct gprs_rlcmac_ul_tbf *ul_tbf = NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 4);</span><br><span> </span><br><span>@@ -3166,7 +3166,7 @@</span><br><span> </span><br><span>   ul_tbf->handle_timeout();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> static void test_packet_access_rej_prr()</span><br><span>@@ -3186,7 +3186,7 @@</span><br><span>        MS_Radio_Access_capability_t *pmsradiocap = NULL;</span><br><span>    Multislot_capability_t *pmultislotcap = NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span>       setup_bts(&the_bts, ts_no, 4);</span><br><span> </span><br><span>@@ -3241,7 +3241,7 @@</span><br><span> </span><br><span>   OSMO_ASSERT(rc == 0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> }</span><br><span> </span><br><span> void test_packet_access_rej_epdan()</span><br><span>@@ -3253,7 +3253,7 @@</span><br><span>                              0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b</span><br><span>    };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  printf("=== start %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span>   setup_bts(&the_bts, 4);</span><br><span>  static gprs_rlcmac_dl_tbf *dl_tbf = tbf_init(&the_bts, 1);</span><br><span> </span><br><span>@@ -3261,13 +3261,13 @@</span><br><span> </span><br><span>     struct msgb *msg = dl_tbf->create_packet_access_reject();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        printf("packet reject: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "packet reject: %s\n",</span><br><span>                     osmo_hexdump(msg->data, 23));</span><br><span> </span><br><span>         if (!msgb_eq_data_print(msg, exp, GSM_MACBLOCK_LEN))</span><br><span style="color: hsl(0, 100%, 40%);">-            printf("%s test failed!\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+              fprintf(stderr, "%s test failed!\n", __func__);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   printf("=== end %s ===\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> </span><br><span> }</span><br><span> </span><br><span>diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err</span><br><span>index 0bc1c42..7dd14f4 100644</span><br><span>--- a/tests/tbf/TbfTest.err</span><br><span>+++ b/tests/tbf/TbfTest.err</span><br><span>@@ -1,3 +1,6 @@</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_base ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_base ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_tlli_update ===</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=0/0</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -35,6 +38,8 @@</span><br><span> The MS object cannot fully confirm an unexpected TLLI: 0x00004232, partly confirmed</span><br><span> Modifying MS object, TLLI: 0x00002342 -> 0x00004232, already confirmed partly</span><br><span> Modifying MS object, TLLI = 0x00004232, TA 4 -> 6</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_tlli_update ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_final_ack ===</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -123,6 +128,8 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=RELEASING)</span><br><span> ********** DL-TBF ends here **********</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_final_ack ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_final_ack ===</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -211,6 +218,8 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING)</span><br><span> ********** DL-TBF ends here **********</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_final_ack ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_delayed_release ===</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -464,6 +473,8 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_delayed_release ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_imsi ===</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -529,6 +540,8 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xf1000002, TBF = TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING)</span><br><span> Destroying MS object, TLLI = 0xf1000002</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_imsi ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_exhaustion ===</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=45/0</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -1336,7 +1349,9 @@</span><br><span> [DL] Slot Allocation (Algorithm A) for class 45</span><br><span> [DL] algo A <single> (suggested TRX: -1): failed to find a usable TRX (TFI exhausted)</span><br><span> No PDCH resource</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_exhaustion ===</span><br><span> Destroying MS object, TLLI = 0x00000000</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_dl_llc_loss ===</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=45/0</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -1424,6 +1439,8 @@</span><br><span> TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=FINISHED) Polling cannot be scheduled in this TS 7 (first control TS 4)</span><br><span> TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=FINISHED) msg block (BSN 2, CS-1): 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 </span><br><span> MSG = 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 </span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_dl_llc_loss ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_single_phase ===</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x03 Fn=2654167 qta=31 is_11bit=0:</span><br><span>@@ -1496,6 +1513,8 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH)</span><br><span>  - TRX=0 (0) TS=7 TA=7 pollFN=-1</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) appending 4 bytes</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_single_phase ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_two_phase ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -1578,6 +1597,8 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) set ass. type PACCH [prev CCCH:0, PACCH:0]</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=0</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) appending 4 bytes</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_two_phase ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_ra_update_rach ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -1777,6 +1798,8 @@</span><br><span> TBF(TFI=0 TLLI=0xf5667788 DIR=DL STATE=FINISHED) appending 4 bytes</span><br><span> Modifying MS object, TLLI: 0xf5667788 confirmed</span><br><span> New MS: TLLI = 0xf5667788, TA = 7, IMSI = 0011223344, LLC = 1</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_ra_update_rach ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_dl_flow_and_rach_two_phase ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -1948,6 +1971,8 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Frame 1 starts at offset 0, length=20, is_complete=0</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) No gaps in received block, last block: BSN=0 CV=15</span><br><span> New MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_dl_flow_and_rach_two_phase ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_dl_flow_and_rach_single_phase ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -2097,6 +2122,8 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FINISHED) Scheduling Ack/Nack, because last block has CV==0.</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FINISHED) changes UL ACK state from GPRS_RLCMAC_UL_ACK_NONE to GPRS_RLCMAC_UL_ACK_SEND_ACK</span><br><span> New MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_dl_flow_and_rach_single_phase ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_dl_reuse ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -3031,8 +3058,12 @@</span><br><span> TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=0</span><br><span> TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=2654461, TS=7</span><br><span> TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 10, CS-1): 0f 03 14 4d 43 20 50 41 43 4b 45 54 20 30 39 20 28 54 42 46 20 32 29 </span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_dl_reuse ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_gprs_egprs ===</span><br><span> Not accepting non-EGPRS phone in EGPRS-only mode</span><br><span> No PDCH resource</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_gprs_egprs ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_ws ===</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=12/0</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -3111,6 +3142,8 @@</span><br><span> Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0x00000000</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_ws ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_egprs_two_phase ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -3201,6 +3234,8 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) set ass. type PACCH [prev CCCH:0, PACCH:0]</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=0</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_egprs_two_phase ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_egprs_two_phase_spb ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -3421,6 +3456,9 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) set ass. type PACCH [prev CCCH:0, PACCH:0]</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=0</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_egprs_two_phase_spb ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_egprs_dl ===</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-1</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -3727,6 +3765,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-2</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -3983,6 +4022,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-3</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -4201,6 +4241,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-4</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -4387,6 +4428,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-5</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -4553,6 +4595,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-6</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -4701,6 +4744,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-7</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -4844,6 +4888,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-8</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -4976,6 +5021,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing MCS-9</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5108,6 +5154,9 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_egprs_dl ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_egprs_retx_dl ===</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 6 - 6</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5163,6 +5212,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 1 - 9</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5218,6 +5268,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 2 - 8</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5273,6 +5324,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 5 - 7</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5344,6 +5396,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 6 - 9</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5415,6 +5468,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 7 - 5</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5486,6 +5540,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 9 - 6</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5557,6 +5612,9 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_egprs_retx_dl ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_egprs_spb_dl ===</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 6 to reseg_mcs 3</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5619,6 +5677,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 5 to reseg_mcs 2</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5681,6 +5740,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 4 to reseg_mcs 1</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5743,6 +5803,7 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Testing retx for MCS 6 to reseg_mcs 3</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -5812,6 +5873,8 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_egprs_spb_dl ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_puan_urbb_len ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -5921,6 +5984,8 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) set ass. type PACCH [prev CCCH:0, PACCH:0]</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=0</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_puan_urbb_len ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_update_ws ===</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -5973,6 +6038,8 @@</span><br><span> Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0x00000000</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_update_ws ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_li_decoding ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -6076,6 +6143,8 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) set ass. type PACCH [prev CCCH:0, PACCH:0]</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=0</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_li_decoding ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_epdan_out_of_rx_window ===</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -6115,6 +6184,8 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_epdan_out_of_rx_window ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_immediate_assign_rej_multi_block ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x78 Fn=2654167 qta=31 is_11bit=0:</span><br><span> ********** UL-TBF starts here **********</span><br><span> Allocating UL TBF: MS_CLASS=0/0</span><br><span>@@ -6305,11 +6376,15 @@</span><br><span> - Skipping TS 7, because no USF available</span><br><span> [UL] algo A <single> (suggested TRX: -1): failed to allocate a TS, no USF available</span><br><span> No PDCH resource sending Immediate Assignment Uplink (AGCH) reject</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_immediate_assign_rej_multi_block ===</span><br><span> Destroying MS object, TLLI = 0x00000000</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_immediate_assign_rej_single_block ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x70 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> No PDCH available.</span><br><span> No PDCH resource for single block allocation.sending Immediate Assignment Uplink (AGCH) reject</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_immediate_assign_rej_single_block ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_tbf_egprs_two_phase_puan ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0:</span><br><span> MS requests single block allocation</span><br><span> RX: [PCU <- BTS] RACH  qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270</span><br><span>@@ -7711,6 +7786,8 @@</span><br><span> Got 'TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS)', TA=7</span><br><span> Got MS: TLLI = 0xf1223344, TA = 7</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_tbf_egprs_two_phase_puan ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_packet_access_rej_epdan ===</span><br><span> Searching for first unallocated TFI: TRX=0</span><br><span>  Found TFI=0.</span><br><span> ********** DL-TBF starts here **********</span><br><span>@@ -7736,6 +7813,9 @@</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW</span><br><span> The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) appending 100 bytes</span><br><span style="color: hsl(120, 100%, 40%);">+packet reject: 40 84 7f f7 6e e6 41 4b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b </span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_packet_access_rej_epdan ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_packet_access_rej_prr ===</span><br><span> MS requests UL TBF on RACH, so we provide one: ra=0x78 Fn=2654167 qta=31 is_11bit=0:</span><br><span> ********** UL-TBF starts here **********</span><br><span> Allocating UL TBF: MS_CLASS=0/0</span><br><span>@@ -7940,7 +8020,9 @@</span><br><span> Received RTS for PDCH: TRX=0 TS=7 FN=2654218 block_nr=8 scheduling USF=0 for required uplink resource of UL TFI=0</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) starting timer T0 [reject (PACCH)] with 0 sec. 2000 microsec, cur_fn=0</span><br><span> Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) (TRX=0, TS=7)</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_packet_access_rej_prr ===</span><br><span> Destroying MS object, TLLI = 0x00000000</span><br><span style="color: hsl(120, 100%, 40%);">+=== start test_packet_access_rej_prr_no_other_tbfs ===</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, UL TLLI: 0x00000000 -> 0xffeeddcc, not yet confirmed</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to ASSIGN</span><br><span>@@ -7955,3 +8037,4 @@</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN)</span><br><span> Destroying MS object, TLLI = 0xffeeddcc</span><br><span> ********** UL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+=== end test_packet_access_rej_prr_no_other_tbfs ===</span><br><span>diff --git a/tests/tbf/TbfTest.ok b/tests/tbf/TbfTest.ok</span><br><span>deleted file mode 100644</span><br><span>index 077ec4e..0000000</span><br><span>--- a/tests/tbf/TbfTest.ok</span><br><span>+++ /dev/null</span><br><span>@@ -1,83 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_base ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_base ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_tlli_update ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_tlli_update ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_final_ack ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_final_ack ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_final_ack ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_final_ack ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_delayed_release ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_delayed_release ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_imsi ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_imsi ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_exhaustion ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_exhaustion ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_dl_llc_loss ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_dl_llc_loss ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_single_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_single_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_two_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_two_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_ra_update_rach ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_ra_update_rach ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_dl_flow_and_rach_two_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_dl_flow_and_rach_two_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_dl_flow_and_rach_single_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_dl_flow_and_rach_single_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_dl_reuse ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_dl_reuse ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_gprs_egprs ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_gprs_egprs ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_ws ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_ws ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_egprs_two_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_egprs_two_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_egprs_two_phase_spb ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_egprs_two_phase_spb ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_egprs_dl ===</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-1</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-2</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-3</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-4</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-5</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-6</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-7</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-8</span><br><span style="color: hsl(0, 100%, 40%);">-Testing MCS-9</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_egprs_dl ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_egprs_retx_dl ===</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 6 - 6</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 1 - 9</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 2 - 8</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 5 - 7</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 6 - 9</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 7 - 5</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 9 - 6</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_egprs_retx_dl ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_egprs_spb_dl ===</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 6 to reseg_mcs 3</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 5 to reseg_mcs 2</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 4 to reseg_mcs 1</span><br><span style="color: hsl(0, 100%, 40%);">-Testing retx for MCS 6 to reseg_mcs 3</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_egprs_spb_dl ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_puan_urbb_len ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_puan_urbb_len ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_update_ws ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_update_ws ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_li_decoding ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_li_decoding ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_epdan_out_of_rx_window ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_epdan_out_of_rx_window ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_immediate_assign_rej_multi_block ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_immediate_assign_rej_multi_block ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_immediate_assign_rej_single_block ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_immediate_assign_rej_single_block ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_tbf_egprs_two_phase_puan ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_tbf_egprs_two_phase_puan ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_packet_access_rej_epdan ===</span><br><span style="color: hsl(0, 100%, 40%);">-packet reject: 40 84 7f f7 6e e6 41 4b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b </span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_packet_access_rej_epdan ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_packet_access_rej_prr ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_packet_access_rej_prr ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== start test_packet_access_rej_prr_no_other_tbfs ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== end test_packet_access_rej_prr_no_other_tbfs ===</span><br><span>diff --git a/tests/testsuite.at b/tests/testsuite.at</span><br><span>index 09b0247..8a319bd 100644</span><br><span>--- a/tests/testsuite.at</span><br><span>+++ b/tests/testsuite.at</span><br><span>@@ -24,9 +24,8 @@</span><br><span> </span><br><span> AT_SETUP([tbf])</span><br><span> AT_KEYWORDS([tbf])</span><br><span style="color: hsl(0, 100%, 40%);">-cat $abs_srcdir/tbf/TbfTest.ok > expout</span><br><span> cat $abs_srcdir/tbf/TbfTest.err > experr</span><br><span style="color: hsl(0, 100%, 40%);">-AT_CHECK([$OSMO_QEMU $abs_top_builddir/tests/tbf/TbfTest], [0], [expout], [experr])</span><br><span style="color: hsl(120, 100%, 40%);">+AT_CHECK([$OSMO_QEMU $abs_top_builddir/tests/tbf/TbfTest], [0], [ignore], [experr])</span><br><span> AT_CLEANUP</span><br><span> </span><br><span> AT_SETUP([bitcomp])</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/15452">change 15452</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-pcu/+/15452"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I3e887158e2c9585c360d44f12f995f55861170f2 </div>
<div style="display:none"> Gerrit-Change-Number: 15452 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@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-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>