From a839604956fa5cc773ecbad79975f8574f81a209 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 10 Jun 2019 19:21:52 +0200 Subject: bscnat: Add function to run actions on test per BSC component Will be useful to test stuff on IPA layer BSC<->BSC-NAT. Change-Id: I97e743c79e5e9e7613ab91a1aa9ce2377a237fd5 --- bsc-nat/BSCNAT_Tests.ttcn | 5 +++-- bsc-nat/BSC_MS_Simulation.ttcn | 27 ++++++++++++++++----------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/bsc-nat/BSCNAT_Tests.ttcn b/bsc-nat/BSCNAT_Tests.ttcn index 47d894b5..81afcfae 100644 --- a/bsc-nat/BSCNAT_Tests.ttcn +++ b/bsc-nat/BSCNAT_Tests.ttcn @@ -138,7 +138,7 @@ function f_init_vty(charstring id := "foo") runs on test_CT { f_vty_transceive(BSCNATVTY, "enable"); } -function f_init(void_fn_bsc_ms fn_bsc_ms, BssmapCreateCallback cb_msc, boolean use_osmux) runs on test_CT { +function f_init(void_fn_bsc_ms fn_bsc_ms, void_fn_bsc fn_bsc, BssmapCreateCallback cb_msc, boolean use_osmux) runs on test_CT { var integer i; var charstring id; @@ -166,7 +166,7 @@ function f_init(void_fn_bsc_ms fn_bsc_ms, BssmapCreateCallback cb_msc, boolean u pars.sccp_addr_remote := bsc[i].sccp_addr_peer; pars.use_osmux := use_osmux; bsc[i].BSC.start(BSC_MS_Simulation.main(mp_nat_ip, mp_nat_port, mp_bsc_ip, mp_bsc_port+i, - bsc[i].sccp_pars, pars, fn_bsc_ms, id)); + bsc[i].sccp_pars, pars, fn_bsc_ms, fn_bsc, id)); } } @@ -191,6 +191,7 @@ function f_TC_recv_dump(boolean use_osmux := false) runs on test_CT { timer T := 30.0; f_init(refers(bsc_ms_establish_fully), + refers(bsc_do_nothing), refers(CreateCallback_establish_fully), use_osmux); diff --git a/bsc-nat/BSC_MS_Simulation.ttcn b/bsc-nat/BSC_MS_Simulation.ttcn index 5feaf0e2..7f233181 100644 --- a/bsc-nat/BSC_MS_Simulation.ttcn +++ b/bsc-nat/BSC_MS_Simulation.ttcn @@ -23,6 +23,9 @@ import from RAN_Emulation all; import from BSC_MS_ConnectionHandler all; +type function void_fn_bsc(charstring id) runs on BSC_CT; +type record of BSC_MS_ConnHdlr BSC_MS_ConnHdlrList; + type component BSC_CT { /* component references */ var IPA_Emulation_CT vc_IPA; @@ -64,11 +67,15 @@ runs on BSC_MS_ConnHdlr { fn.apply(id); } +function bsc_do_nothing(charstring id) +runs on BSC_CT { +} + function main(charstring remote_ip, PortNumber remote_port, charstring local_ip, PortNumber local_port, MSC_SCCP_MTP3_parameters sccp_pars, BSC_MS_TestHdlrParams pars, - void_fn_bsc_ms fn, charstring id) runs on BSC_CT + void_fn_bsc_ms fn_bsc_ms, void_fn_bsc fn_bsc, charstring id) runs on BSC_CT { var integer i := 0; timer T := 1.0; @@ -101,8 +108,15 @@ function main(charstring remote_ip, PortNumber remote_port, T.start(2.0); T.timeout; + var BSC_MS_ConnHdlrList vc_conns; + for (i := 0; i < mp_num_iterations; i := i+1) { + vc_conns[i] := f_start_handler(fn_bsc_ms, id & "-MS-" & int2str(i), g_pars); + } + + fn_bsc.apply(id); + for (i := 0; i < mp_num_iterations; i := i+1) { - f_start_BSC_MS(fn, id & "-MS-" & int2str(i)); + vc_conns[i].done; } /* explicitly stop all components that we started above */ @@ -111,13 +125,4 @@ function main(charstring remote_ip, PortNumber remote_port, vc_SCCP.stop; } -function f_start_BSC_MS(void_fn_bsc_ms fn, charstring id) runs on BSC_CT { - var BSC_MS_ConnHdlr vc_conn; - /* start component */ - vc_conn := f_start_handler(fn, id, g_pars); - /* blocking wait until component terminates. If you want to start MSs in parallel, - * you have to remove this statement here */ - vc_conn.done; -} - } -- cgit v1.2.3