From 692c9ee85466c0e258c1ece5649b98f9eeb9dce7 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Tue, 10 Apr 2018 02:07:13 +0200 Subject: msc: add TC_mo_cc_bssmap_clear to catch OS#3062 The test currently crashes osmo-msc, which is fixed by I5c30e0f9545fb76615776ff6cc16b56aeb5b043a (osmo-msc). Related: OS#3062 Change-Id: Ic80646e1fba37bb6163ca3a7eead7980b4ad7a51 --- msc/MSC_Tests.ttcn | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index dc3ad1ea..a18b9b06 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2234,6 +2234,48 @@ testcase TC_lu_and_mo_ussd_during_mt_call() runs on MTC_CT { vc_conn.done; } +/* BSSMAP Clear Request in the middle of a call, see OS#3062 */ +private function f_tc_mo_cc_bssmap_clear(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + f_init_handler(pars); + var CallParameters cpars := valueof(t_CallParams('12345'H, 0)); + var MNCC_PDU mncc; + var MgcpCommand mgcp_cmd; + + f_perform_lu(); + + f_establish_fully(); + f_create_mncc_expect(hex2str(cpars.called_party)); + f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit}); + + BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_SETUP(cpars.transaction_id, cpars.called_party))); + MNCC.receive(tr_MNCC_SETUP_ind(?, tr_MNCC_number(hex2str(cpars.called_party)))) -> value mncc; + cpars.mncc_callref := mncc.u.signal.callref; + log("mncc_callref=", cpars.mncc_callref); + MNCC.send(ts_MNCC_CALL_PROC_req(cpars.mncc_callref, cpars.mncc_bearer_cap)); + BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_CALL_PROC(cpars.transaction_id))); + + MNCC.send(ts_MNCC_ALERT_req(cpars.mncc_callref)); + BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_ALERTING(cpars.transaction_id))); + MGCP.receive(tr_CRCX); + + f_sleep(1.0); + BSSAP.send(ts_BSSMAP_ClearRequest(0)); + + MNCC.receive(tr_MNCC_REL_ind(?, ?)) -> value mncc; + + BSSAP.receive(tr_BSSMAP_ClearCommand); + BSSAP.send(ts_BSSMAP_ClearComplete); + + f_sleep(1.0); +} +testcase TC_mo_cc_bssmap_clear() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + + vc_conn := f_start_handler(refers(f_tc_mo_cc_bssmap_clear), 43); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2320,6 +2362,7 @@ control { /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); + execute( TC_mo_cc_bssmap_clear() ); } -- cgit v1.2.3