aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-06-10 19:21:52 +0200
committerpespin <pespin@sysmocom.de>2019-06-13 14:33:23 +0000
commita839604956fa5cc773ecbad79975f8574f81a209 (patch)
treedc3514a97a26541a4b6625ee5b25781fbe8f0380
parentd1d4953d3166535a42d9f901deb15b1fbcda897d (diff)
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
-rw-r--r--bsc-nat/BSCNAT_Tests.ttcn5
-rw-r--r--bsc-nat/BSC_MS_Simulation.ttcn27
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;
-}
-
}