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