aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2022-08-02 18:53:08 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2022-08-04 13:32:39 +0200
commita5536b697d33fcb6c7d9c2dd15ea1d8d90325388 (patch)
tree24555a751d0eb1e54811cd09fef94a142c24ab55
parent74f62981a870af44696e329df8b893cb63567396 (diff)
cbc: test concurrent CBS message
Test having more than one active CBS message being broadcasted to an MME. Related: OS#4945 Change-Id: Ie9208c33f3b2586e19b446318b6ae9da07a76506
-rw-r--r--cbc/CBC_Tests.ttcn58
1 files changed, 58 insertions, 0 deletions
diff --git a/cbc/CBC_Tests.ttcn b/cbc/CBC_Tests.ttcn
index 9beaddfe..fdf3b0fc 100644
--- a/cbc/CBC_Tests.ttcn
+++ b/cbc/CBC_Tests.ttcn
@@ -596,6 +596,63 @@ testcase TC_ecbe_create_delete_mme_server() runs on test_CT {
f_shutdown_helper();
}
+/* Create 2 concurrent messages against an MME, then delete them */
+private function f_mme_TC_concurrent_cbs_msg_mme() runs on MME_ConnHdlr {
+ var CBS_Message msg[2];
+ msg[0] := g_pars.exp_cbs_msg;
+ msg[1] := msg[0];
+ msg[1].msg_id := msg[0].msg_id + 1;
+
+ for (var integer i := 0; i < lengthof(msg); i := i + 1) {
+ f_sbcap_handle_write_replace_warn_req(msg[i], 0);
+ if (ispresent(g_pars.write_replace_warning_ind_cause) and
+ ispresent(g_pars.bcast_cell_id_list)) {
+ f_sbcap_tx_write_replace_warn_ind(0, msg[i],
+ g_pars.write_replace_warning_ind_cause,
+ g_pars.bcast_cell_id_list)
+ }
+ }
+ /* Now handle Stop: */
+ for (var integer i := 0; i < lengthof(msg); i := i + 1) {
+ f_sbcap_handle_stop_warn_req(0, msg[i]);
+ }
+}
+testcase TC_concurrent_cbs_msg_mme() runs on test_CT {
+ var template (value) CellId_Broadcast_List bcast_cell_id_li;
+ var CBS_Message msg[2];
+ var EcbeCbcMessage ecbe;
+
+ msg[0] := valueof(t_CBSmsg(49, 16752));
+ msg[1] := msg[0];
+ msg[1].msg_id := msg[0].msg_id + 1;
+
+ f_init(num_bsc := 0, num_mme := 1);
+
+ bcast_cell_id_li := {
+ ts_SBCAP_CellId_Broadcast_List_Item(ts_SBCAP_ECGI(f_enc_mcc_mnc('901'H, '70'H), 1234))
+ };
+ g_pars_MME[0].start_fn := refers(f_mme_TC_concurrent_cbs_msg_mme);
+ g_pars_MME[0].exp_cbs_msg := msg[0];
+ g_pars_MME[0].write_replace_warning_ind_cause := SBC_AP_Cause_message_accepted;
+ g_pars_MME[0].bcast_cell_id_list := valueof(bcast_cell_id_li);
+ f_start();
+
+ for (var integer i := 0; i < lengthof(msg); i := i + 1) {
+ ecbe := f_cbs2ecbe(msg[i], "TTCN-3");
+ f_ecbe_tx_post_cbs(ecbe);
+ f_ecbe_rx_resp(201);
+ }
+
+ f_sleep(2.0);
+
+ for (var integer i := 0; i < lengthof(msg); i := i + 1) {
+ f_ecbe_tx_delete_cbs(msg[i].msg_id);
+ f_ecbe_rx_resp(200);
+ }
+
+ f_shutdown_helper();
+}
+
control {
execute( TC_rx_keepalive() );
execute( TC_rx_keepalive_timeout() );
@@ -609,6 +666,7 @@ control {
execute( TC_ecbe_create_delete_bsc_and_mme() );
execute( TC_ecbe_create_delete_bsc_server() );
execute( TC_ecbe_create_delete_mme_server() );
+ execute( TC_concurrent_cbs_msg_mme() );
}
}