diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2021-08-12 14:24:56 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2021-08-12 14:25:39 +0200 |
commit | 339d2dda15cbe46adf24e7f63c815769873d6869 (patch) | |
tree | 05973e89303543c35763bfa86ead9a8727832a14 | |
parent | 79606cfcbc6195e43c0f3fd628a4f071eb4ada60 (diff) |
PCU_Tests: add f_verify_talloc_count for DL and UL TBFs
Change-Id: Ied9deab5aff9b4b5f5874216393d6c56293754ab
-rw-r--r-- | pcu/PCU_Tests.ttcn | 109 |
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); } |