This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Vadim Yanitskiy gerrit-no-reply at lists.osmocom.orgVadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9471 Change subject: WIP: msc/USSD: add multi-transaction testcase ...................................................................... WIP: msc/USSD: add multi-transaction testcase The idea of this testcase is to establish a dedicated connection, perform location update, and then send 8 USSD requests on 8 separate transactions at once. A few requests contain known '*#100#' request code, others are intentionally wrong. Finally, we expect that each received response shall correspond to its request and shall be sent back on a proper transaction. Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 --- M msc/MSC_Tests.ttcn 1 file changed, 136 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/9471/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 7b8740c..bb44f83 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2216,6 +2216,141 @@ vc_conn.done; } +private template (value) PDU_DTAP_MO ts_dtap_ussd_init_req( + uint3_t tid := 0, + charstring code +) := ts_PDU_DTAP_MO( + ts_ML3_MO_SS_REGISTER( + tid := tid, + ti_flag := c_TIF_ORIG, + facility := f_USSD_FACILITY_IE_INVOKE( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := code + ) + ) +) +private template PDU_DTAP_MT tr_dtap_ussd_result( + template uint3_t tid := ?, + charstring result +) := tr_PDU_DTAP_MT( + tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := tid, + ti_flag := c_TIF_REPL, + facility := f_USSD_FACILITY_IE_RETURN_RESULT( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := result + ) + ) +) +private template PDU_DTAP_MT tr_dtap_ussd_error( + template uint3_t tid := ?, + SS_Err_Code err_code +) := tr_PDU_DTAP_MT( + tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := tid, + ti_flag := c_TIF_REPL, + facility := f_USSD_FACILITY_IE_RETURN_ERROR( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + err_code := err_code + ) + ) +) + +private function f_tc_lu_and_ussd_multi_tid(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Perform location update */ + f_perform_lu(); + + /* Send CM Service Request for SS/USSD */ + f_establish_fully(EST_TYPE_SS_ACT); + + /** + * Send a few requests using separate transcations. + * Some of them are with intentionally wrong codes. + * + * GSM allows a side to initiate up to 8 transactions, + * so let's use them all, why not? + */ + BSSAP.send(ts_dtap_ussd_init_req(tid := 0, code := "*#100#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 1, code := "*110*181#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 2, code := "*999*888#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 3, code := "*#100#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 4, code := "*#100#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 5, code := "##113#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 6, code := "#osmocom")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 7, code := "*#100#")); + + /** + * We expect that each response shall correspond to its + * request and shall be sent back on a proper transaction. + */ + var bitstring rsp_tid_mask := '00000000'B; + var PDU_DTAP_MT rsp_msg; + var bitstring rsp_tid; + alt { + [] BSSAP.receive(tr_dtap_ussd_result( + tid := (0, 3, 4, 7), /* Known request codes => known result */ + result := "Your extension is " & hex2str(g_pars.msisdn) & "\r" + )) -> value rsp_msg { + /** + * Looks ugly, but for some reason the field assignment + * according to "22.2.2 The Receive operation", i.e. + * (-> value (rsp_msg, tid := dtap.etc.)) doesn't work. + * + * "error: Redirecting parts of a value is not supported + * in the Load Test Runtime." + */ + rsp_tid := rsp_msg.dtap.tiOrSkip.transactionId.tio; + rsp_tid_mask := rsp_tid_mask or4b ('1'B << bit2int(rsp_tid)); + + /* Decide, should we repeat? */ + if (rsp_tid_mask == '11111111'B) { + setverdict(pass); + } else { + repeat; + } + } + [] BSSAP.receive(tr_dtap_ussd_error( + tid := (1, 2, 5, 6), /* Unknown request codes => error */ + err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE + )) -> value rsp_msg { + /** + * Looks ugly, but for some reason the field assignment + * according to "22.2.2 The Receive operation", i.e. + * (-> value (rsp_msg, tid := dtap.etc.)) doesn't work. + * + * "error: Redirecting parts of a value is not supported + * in the Load Test Runtime." + */ + rsp_tid := rsp_msg.dtap.tiOrSkip.transactionId.tio; + rsp_tid_mask := rsp_tid_mask or4b ('1'B << bit2int(rsp_tid)); + + /* Decide, should we repeat? */ + if (rsp_tid_mask == '11111111'B) { + setverdict(pass); + } else { + repeat; + } + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + } + + f_expect_clear(); +} +testcase TC_lu_and_ussd_multi_tid() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_multi_tid), 48); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2299,6 +2434,7 @@ execute( TC_lu_and_ussd_single_req() ); execute( TC_lu_and_ussd_wrong_code() ); + execute( TC_lu_and_ussd_multi_tid() ); /* 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() ); -- To view, visit https://gerrit.osmocom.org/9471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 Gerrit-Change-Number: 9471 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180606/2f5c7e07/attachment.htm>