From c3c6ee6c63c714c48e60ac678b80ae0b4afedbdc Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Wed, 26 Jan 2022 01:22:12 +0100 Subject: [PATCH] bsc: fixup for conn cleanup, fixing three failing tests Three tests fail after recent patch "bsc: properly clean up conn after each test" I9396efcabc085d2850244c6468b83c5f3a3ff3a2 In TC_assignment_emerg_setup_deny_bts(), do not expect an RR Rel. In TC_assignment_emerg_setup_deny_msc() and TC_cm_reestablishment(), drop the additional f_expect_dlcx_conns(). Related: OS#5337 Change-Id: I1d1d27f0927e640a430b24c6dc3d5d851a5c4cb9 --- bsc/BSC_Tests.ttcn | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 634e6295a..1510af8d5 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -7932,6 +7932,31 @@ runs on MSC_ConnHdlr { deactivate(ack_rel_req); } +friend function f_perform_clear_no_rr_rel(RSL_DCHAN_PT rsl_pt := RSL, RSLEM_PROC_PT rsl_proc_pt := RSL_PROC) +runs on MSC_ConnHdlr { + var default ack_dlcx := activate(as_mgcp_ack_all_dlcx()); + var default ack_rel_req := activate(as_rsl_ack_all_rel_req()); + f_logp(BSCVTY, "MSC instructs BSC to clear channel"); + BSSAP.send(ts_BSSMAP_ClearCommand(0)); + interleave { + [] rsl_pt.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { + f_logp(BSCVTY, "Got RSL Deact SACCH"); + } + [] BSSAP.receive(tr_BSSMAP_ClearComplete) { + f_logp(BSCVTY, "Got BSSMAP Clear Complete"); + /* Also drop the SCCP connection */ + BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + } + [] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) { + f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack"); + rsl_pt.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr)); + f_rslem_unregister(0, g_chan_nr, PT := rsl_proc_pt); + } + } + deactivate(ack_dlcx); + deactivate(ack_rel_req); +} + private function f_perform_clear_test_ct(DchanTuple dt) runs on test_CT { @@ -8707,7 +8732,7 @@ private function f_TC_assignment_emerg_setup_deny(charstring id) runs on MSC_Con } } BSSAP.receive(tr_BSSMAP_ClearRequest); - f_perform_clear(); + f_perform_clear_no_rr_rel(); } /* EMERGENCY CALL situation #1, allowed globally and by BTS */ @@ -10198,7 +10223,6 @@ private function f_tc_cm_reestablishment_1(charstring id) runs on MSC_ConnHdlr { } } f_perform_clear() - f_expect_dlcx_conns(); f_create_mgcp_delete_ep(g_media.mgcp_ep); COORD.send(REEST_CLEAR_DONE); } @@ -10259,7 +10283,6 @@ private function f_tc_cm_reestablishment_2(charstring id) runs on MSC_ConnHdlr { f_logp(BSCVTY, "f_tc_cm_reestablishment_2 clearing"); f_perform_clear(RSL1, RSL1_PROC); - f_expect_dlcx_conns(); } testcase TC_cm_reestablishment() runs on test_CT {