aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-08-12 14:24:56 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2021-08-12 14:25:39 +0200
commit339d2dda15cbe46adf24e7f63c815769873d6869 (patch)
tree05973e89303543c35763bfa86ead9a8727832a14
parent79606cfcbc6195e43c0f3fd628a4f071eb4ada60 (diff)
PCU_Tests: add f_verify_talloc_count for DL and UL TBFs
-rw-r--r--pcu/PCU_Tests.ttcn109
1 files changed, 109 insertions, 0 deletions
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 804644a3..0534f25a 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -60,6 +60,7 @@ import from IPA_Emulation all;
import from Osmocom_CTRL_Types all;
import from Osmocom_CTRL_Adapter all;
import from Osmocom_CTRL_Functions all;
+import from TCCConversion_Functions all;
modulepar {
charstring mp_pcu_sock_path := PCU_SOCK_DEFAULT;
@@ -246,6 +247,52 @@ runs on RAW_PCU_Test_CT {
}
}
+function f_strstr_count(in charstring str, in charstring sub_str) return integer
+{
+ var integer count := 0;
+ var integer pos := 0;
+
+ while (true) {
+ var integer at := f_strstr(str, sub_str, pos);
+ if (at < 0) {
+ break;
+ }
+ count := count + 1;
+ pos := at + 1;
+ }
+ return count;
+}
+
+private type record of charstring StrList;
+
+private function f_verify_talloc_count(TELNETasp_PT pt, StrList object_strs, integer expect_count := 0,
+ integer attempts := 10, float wait_time := 5.0)
+{
+ while (attempts > 0) {
+ attempts := attempts - 1;
+ var charstring ret := f_vty_transceive_ret(pt, "show talloc-context application brief");
+
+ var boolean ok := true;
+ for (var integer i := 0; i < lengthof(object_strs); i := i + 1) {
+ var charstring object_str := object_strs[i];
+ var integer count := f_strstr_count(ret, object_str);
+ log("talloc reports ", object_str, " x ", count, ", expecting ", expect_count);
+ if (count != expect_count) {
+ ok := false;
+ }
+ }
+ if (ok) {
+ return;
+ }
+ if (attempts == 0) {
+ break;
+ }
+ log("count mismatch, retrying in ", wait_time);
+ f_sleep(wait_time);
+ }
+ setverdict(fail, "talloc count mismatch");
+}
+
private function f_init_vty(charstring id, boolean egprs_only) runs on RAW_PCU_Test_CT {
map(self:PCUVTY, system:PCUVTY);
f_vty_set_prompts(PCUVTY);
@@ -267,6 +314,8 @@ private function f_init_vty(charstring id, boolean egprs_only) runs on RAW_PCU_T
function f_init_raw(charstring id, template (value) PCUIF_info_ind info_ind := ts_PCUIF_INFO_default)
runs on RAW_PCU_Test_CT {
+ f_sleep(0.5);
+
/* Start the guard timer */
g_T_guard.start;
activate(as_Tguard_RAW());
@@ -2138,6 +2187,8 @@ testcase TC_ul_all_sizes() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
+
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2177,6 +2228,8 @@ function f_TC_ul_data_toolong_fills_padding_cs(inout GprsMS ms, CodingScheme cs,
setverdict(pass);
}
}
+
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
}
/* Verify PCU finds out incorrectly formated RLC block and discards it. This
blocks intentionally contain last byte of data placed in last byte of RLC
@@ -2207,6 +2260,8 @@ testcase TC_ul_data_toolong_fills_padding() runs on RAW_PCU_Test_CT {
f_TC_ul_data_toolong_fills_padding_cs(ms, CS_3, 1);
f_TC_ul_data_toolong_fills_padding_cs(ms, CS_4, 0);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
+
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2259,6 +2314,7 @@ private function f_TC_mo_ping_pong_1phase_access(template (present) CodingScheme
f_ms_tx_ul_block(ms, ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf.tfi, ms.dl_tbf.acknack_desc),
f_dl_block_ack_fn(dl_block, dl_fn));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2336,6 +2392,7 @@ runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, f_dltbf_ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf, ischosen(dl_block.data_egprs)),
f_dl_block_ack_fn(dl_block, dl_fn));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2414,6 +2471,7 @@ runs on RAW_PCU_Test_CT {
/* UL block should be received in SGSN */
BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2512,6 +2570,7 @@ testcase TC_ul_intermediate_retrans() runs on RAW_PCU_Test_CT {
/* receive one message on BSSGP with all aggregated data in payload: */
BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id, total_payload));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2559,6 +2618,7 @@ testcase TC_imm_ass_dl_block_retrans() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf.tfi, ms.dl_tbf.acknack_desc),
f_dl_block_ack_fn(dl_block, dl_fn));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2644,6 +2704,7 @@ testcase TC_dl_flow_more_blocks() runs on RAW_PCU_Test_CT {
};
f_statsd_expect(expect);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2753,6 +2814,7 @@ testcase TC_ul_flow_multiple_llc_blocks() runs on RAW_PCU_Test_CT {
/* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2844,6 +2906,7 @@ testcase TC_dl_no_ack_retrans_imm_ass() runs on RAW_PCU_Test_CT {
}
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2900,6 +2963,7 @@ testcase TC_dl_multislot_tbf_ms_class_from_sgsn() runs on RAW_PCU_Test_CT {
}
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn, nr := f_ms_tx_TsTrxBtsNum(ms));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2949,6 +3013,7 @@ testcase TC_dl_multislot_tbf_ms_class_from_2phase() runs on RAW_PCU_Test_CT {
}
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn, nr := f_ms_tx_TsTrxBtsNum(ms));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -2992,6 +3057,7 @@ testcase TC_ul_multislot_tbf_ms_class_from_2phase() runs on RAW_PCU_Test_CT {
f_shutdown(__BFILE__, __LINE__);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3055,6 +3121,7 @@ testcase TC_ul_tbf_reestablish_with_pkt_resource_req() runs on RAW_PCU_Test_CT {
/* ACK the ACK */
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3105,6 +3172,7 @@ testcase TC_paging_cs_from_bts() runs on RAW_PCU_Test_CT {
setverdict(fail, "Failed to match IMSI ", imsi, " in ", req);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3156,6 +3224,7 @@ runs on RAW_PCU_Test_CT {
}
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3216,6 +3285,7 @@ runs on RAW_PCU_Test_CT {
f_statsd_expect(expect);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3289,6 +3359,7 @@ testcase TC_bssgp_dl_unitdata_with_valid_imsi() runs on RAW_PCU_Test_CT {
};
f_statsd_expect(expect);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3332,6 +3403,7 @@ testcase TC_bssgp_dl_unitdata_with_invalid_imsi() runs on RAW_PCU_Test_CT {
/* TODO: make sure no data is sent over PCU -> MS */
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3384,6 +3456,7 @@ private function f_tc_dl_data_no_llc_ui_dummy(template (omit) MSRadioAccessCapab
f_shutdown(__BFILE__, __LINE__);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3443,6 +3516,7 @@ testcase TC_egprs_pkt_chan_req_signalling() runs on RAW_PCU_Test_CT {
f_TC_egprs_pkt_chan_req(req, imm_ass);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3477,6 +3551,7 @@ testcase TC_egprs_pkt_chan_req_one_phase() runs on RAW_PCU_Test_CT {
f_TC_egprs_pkt_chan_req(req, imm_ass);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3509,6 +3584,7 @@ testcase TC_egprs_pkt_chan_req_two_phase() runs on RAW_PCU_Test_CT {
f_TC_egprs_pkt_chan_req(req, imm_ass);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3573,6 +3649,7 @@ testcase TC_egprs_pkt_chan_req_reject_content() runs on RAW_PCU_Test_CT {
f_TC_egprs_pkt_chan_req_reject('111111'B & ext_ra, 1337 + i, rest);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3602,6 +3679,7 @@ testcase TC_egprs_pkt_chan_req_reject_emergency() runs on RAW_PCU_Test_CT {
f_TC_egprs_pkt_chan_req_reject(ra11, 1337 + i, rest);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3643,6 +3721,7 @@ testcase TC_egprs_pkt_chan_req_reject_exhaustion() runs on RAW_PCU_Test_CT {
/* At this point, the IUT should run out of free USFs */
f_TC_egprs_pkt_chan_req_reject(ra11, 1870, rest, wi := info_ind.t3142);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3714,6 +3793,7 @@ testcase TC_pcuif_fh_imm_ass_ul_egprs() runs on RAW_PCU_Test_CT {
f_ms_establish_ul_tbf(ms);
f_TC_pcuif_fh_check_imm_ass(valueof(info_ind), ms.ul_tbf.rr_imm_ass);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3732,6 +3812,7 @@ testcase TC_pcuif_fh_imm_ass_ul() runs on RAW_PCU_Test_CT {
f_ms_establish_ul_tbf(ms);
f_TC_pcuif_fh_check_imm_ass(valueof(info_ind), ms.ul_tbf.rr_imm_ass);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3758,6 +3839,7 @@ testcase TC_pcuif_fh_imm_ass_dl() runs on RAW_PCU_Test_CT {
f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH);
f_TC_pcuif_fh_check_imm_ass(valueof(info_ind), ms.dl_tbf.rr_imm_ass);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3838,6 +3920,7 @@ testcase TC_pcuif_fh_pkt_ass_ul() runs on RAW_PCU_Test_CT {
}
f_TC_pcuif_fh_check_pkt_ass(valueof(info_ind), valueof(fp));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3886,6 +3969,7 @@ testcase TC_pcuif_fh_pkt_ass_dl() runs on RAW_PCU_Test_CT {
}
f_TC_pcuif_fh_check_pkt_ass(valueof(info_ind), da.freq_par);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3903,6 +3987,7 @@ testcase TC_pcuif_info_ind_subsequent() runs on RAW_PCU_Test_CT {
f_pcuif_rx_data_req_pdtch(data_msg);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -3944,6 +4029,7 @@ testcase TC_multitrx_multims_alloc() runs on RAW_PCU_Test_CT {
}
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4128,6 +4214,7 @@ testcase TC_multiplex_dl_gprs_egprs() runs on RAW_PCU_Test_CT {
f_shutdown(__BFILE__, __LINE__);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4235,6 +4322,7 @@ testcase TC_paging_cs_multi_ms_imsi() runs on RAW_PCU_Test_CT {
f_TC_paging_cs_multi_ms(nr, exp_imsi := true, exp_tmsi := false);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4260,6 +4348,7 @@ testcase TC_paging_cs_multi_ms_tmsi() runs on RAW_PCU_Test_CT {
f_TC_paging_cs_multi_ms(nr, exp_imsi := false, exp_tmsi := true);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4289,6 +4378,7 @@ testcase TC_paging_cs_multi_ms_imsi_tmsi() runs on RAW_PCU_Test_CT {
f_TC_paging_cs_multi_ms(nr, exp_imsi := true, exp_tmsi := true);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4439,6 +4529,7 @@ testcase TC_nacc_outbound_success() runs on RAW_PCU_Test_CT {
/* Start NACC from MS side */
f_outbound_nacc_success(ms, info_ind);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4489,6 +4580,7 @@ testcase TC_nacc_outbound_success_no_ctrl_ack() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4531,6 +4623,7 @@ testcase TC_nacc_outbound_success_twice() runs on RAW_PCU_Test_CT {
/* First NACC procedure is done, let's try to start a new one now that previous queries are cached: */
f_outbound_nacc_success(ms, info_ind, false, false);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4579,6 +4672,7 @@ testcase TC_nacc_outbound_success_twice_nocache() runs on RAW_PCU_Test_CT {
/* First NACC procedure is done, let's try to start a new one now that previous queries have timed out: */
f_outbound_nacc_success(ms, info_ind);
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4635,6 +4729,7 @@ testcase TC_nacc_outbound_rac_ci_resolve_conn_refused() runs on RAW_PCU_Test_CT
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4699,6 +4794,7 @@ testcase TC_nacc_outbound_rac_ci_resolve_timeout() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4763,6 +4859,7 @@ testcase TC_nacc_outbound_rac_ci_resolve_fail_parse_response() runs on RAW_PCU_T
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4842,6 +4939,7 @@ testcase TC_nacc_outbound_si_resolve_timeout() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -4925,6 +5023,7 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_dup() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -5008,6 +5107,7 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_dup2() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -5302,6 +5402,7 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_twice() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -5387,6 +5488,7 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_twice2() runs on RAW_PCU_Test_CT {
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -5470,6 +5572,7 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_twice3() runs on RAW_PCU_Test_CT {
sched_fn := f_rrbp_ack_fn(sched_fn, dl_block.ctrl.mac_hdr.rrbp);
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
}
/* Test MS sending Pkt Cell Change Notification twice (different tgt cell) while sending Pkt Cell Change Continue */
@@ -5556,6 +5659,7 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_twice4() runs on RAW_PCU_Test_CT {
sched_fn := f_rrbp_ack_fn(sched_fn, dl_block.ctrl.mac_hdr.rrbp);
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
}
/* Test MS sending Pkt Cell Change Notification twice (different tgt cell) while waiting for Pkt Cell Change Continue CTRL ACK*/
@@ -5654,6 +5758,7 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_twice5() runs on RAW_PCU_Test_CT {
sched_fn := f_rrbp_ack_fn(sched_fn, dl_block.ctrl.mac_hdr.rrbp);
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
}
/* Test MS sending Pkt Cell Change Notification on an MS with an existing but unassigned (no TFI) DL TBF */
@@ -5739,6 +5844,7 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_unassigned_dl_tbf() runs on RAW_PCU
f_acknackdesc_ack_block(ms.dl_tbf.acknack_desc, dl_block, '1'B);
f_ms_tx_ul_block(ms, ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf.tfi, ms.dl_tbf.acknack_desc),
f_dl_block_ack_fn(dl_block, dl_fn));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
}
@@ -5814,6 +5920,7 @@ testcase TC_rim_ran_info_req_single_rep() runs on RAW_PCU_Test_CT {
f_do_inbound_nacc(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr),
tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -5836,6 +5943,7 @@ testcase TC_rim_ran_info_req_single_rep_eutran() runs on RAW_PCU_Test_CT {
f_do_inbound_nacc(ts_RIM_Routing_Information(RIM_ADDR_EUTRAN_NODEB_ID, src_addr),
tr_RIM_Routing_Information(RIM_ADDR_EUTRAN_NODEB_ID, src_addr));
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}
@@ -5910,6 +6018,7 @@ testcase TC_rim_ran_info_req_single_rep_no_si() runs on RAW_PCU_Test_CT {
}
}
+ f_verify_talloc_count(PCUVTY, {"struct gprs_rlcmac_ul_tbf", "struct gprs_rlcmac_dl_tbf"});
f_shutdown(__BFILE__, __LINE__, final := true);
}