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
diff --git a/bsc-nat/BSC_MS_Simulation.ttcn b/bsc-nat/BSC_MS_Simulation.ttcn
index 5feaf0e..7f23318 100644
--- a/bsc-nat/BSC_MS_Simulation.ttcn
+++ b/bsc-nat/BSC_MS_Simulation.ttcn
@@ -23,6 +23,9 @@
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 @@
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 @@
T.start(2.0);
T.timeout;
+ var BSC_MS_ConnHdlrList vc_conns;
for (i := 0; i < mp_num_iterations; i := i+1) {
- f_start_BSC_MS(fn, id & "-MS-" & int2str(i));
+ 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) {
+ vc_conns[i].done;
}
/* explicitly stop all components that we started above */
@@ -111,13 +125,4 @@
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;
-}
-
}