fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/39461?usp=email )
Change subject: s1gw: add f_TC_exec() ......................................................................
s1gw: add f_TC_exec()
The idea is to reduce the amount of boilerplate code.
Change-Id: I0df4ad15bc2dca2afb2c598c1b053f45b69c181b --- M s1gw/S1GW_Tests.ttcn 1 file changed, 30 insertions(+), 79 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/61/39461/1
diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn index 729bc77..089bd0d 100644 --- a/s1gw/S1GW_Tests.ttcn +++ b/s1gw/S1GW_Tests.ttcn @@ -197,6 +197,22 @@ } }
+function f_TC_exec(void_fn fn, + integer num_enbs := 1, + integer num_erabs := 1) +runs on test_CT { + var ConnHdlrList vc_conns; + + f_init(); + + for (var integer i := 0; i < num_enbs; i := i + 1) { + var ConnHdlrPars pars := valueof(t_ConnHdlrPars(i, num_erabs)); + vc_conns[i] := f_ConnHdlr_spawn(fn, pars); + } + + f_ConnHdlrList_all_done(vc_conns); +} + function f_TC_setup(charstring id) runs on ConnHdlr { f_ConnHdlr_s1ap_register(g_pars.genb_id);
@@ -222,13 +238,7 @@ f_ConnHdlr_s1ap_unregister(g_pars.genb_id); } testcase TC_setup() runs on test_CT { - var ConnHdlrPars pars := valueof(t_ConnHdlrPars); - var ConnHdlr vc_conn; - - f_init(); - - vc_conn := f_ConnHdlr_spawn(refers(f_TC_setup), pars); - vc_conn.done; + f_TC_exec(refers(f_TC_setup)); }
function f_TC_setup_multi(charstring id) runs on ConnHdlr { @@ -243,16 +253,7 @@ f_ConnHdlr_s1ap_unregister(g_pars.genb_id); } testcase TC_setup_multi() runs on test_CT { - var ConnHdlrList vc_conns; - - f_init(); - - for (var integer i := 0; i < mp_multi_enb_num; i := i + 1) { - var ConnHdlrPars pars := valueof(t_ConnHdlrPars(i)); - vc_conns[i] := f_ConnHdlr_spawn(refers(f_TC_setup_multi), pars); - } - - f_ConnHdlrList_all_done(vc_conns); + f_TC_exec(refers(f_TC_setup_multi), mp_multi_enb_num); }
@@ -314,34 +315,21 @@ f_ConnHdlr_s1ap_disconnect(); f_ConnHdlr_s1ap_unregister(g_pars.genb_id); } -private function f_TC_e_rab_setup_exec(integer num_enbs, integer num_erabs) -runs on test_CT { - var ConnHdlrList vc_conns; - - f_init(); - - for (var integer i := 0; i < num_enbs; i := i + 1) { - var ConnHdlrPars pars := valueof(t_ConnHdlrPars(i, num_erabs)); - vc_conns[i] := f_ConnHdlr_spawn(refers(f_TC_e_rab_setup), pars); - } - - f_ConnHdlrList_all_done(vc_conns); -} /* 1 E-RAB at a time, single eNB */ testcase TC_e_rab_setup() runs on test_CT { - f_TC_e_rab_setup_exec(num_enbs := 1, num_erabs := 1); + f_TC_exec(refers(f_TC_e_rab_setup)); } /* 1 E-RAB at a time, multiple eNB connections */ testcase TC_e_rab_setup_multi() runs on test_CT { - f_TC_e_rab_setup_exec(num_enbs := mp_multi_enb_num, num_erabs := 1); + f_TC_exec(refers(f_TC_e_rab_setup), mp_multi_enb_num); } /* 3 E-RABs at a time, single eNB */ testcase TC_e_rab_setup3() runs on test_CT { - f_TC_e_rab_setup_exec(num_enbs := 1, num_erabs := 3); + f_TC_exec(refers(f_TC_e_rab_setup), 1, 3); } /* 3 E-RABs at a time, multiple eNB connections */ testcase TC_e_rab_setup3_multi() runs on test_CT { - f_TC_e_rab_setup_exec(num_enbs := mp_multi_enb_num, num_erabs := 3); + f_TC_exec(refers(f_TC_e_rab_setup), mp_multi_enb_num, 3); }
/* Test E-RAB SETUP and RELEASE.ind procedures */ @@ -358,13 +346,7 @@ f_ConnHdlr_s1ap_unregister(g_pars.genb_id); } testcase TC_e_rab_release_ind() runs on test_CT { - var ConnHdlrPars pars := valueof(t_ConnHdlrPars); - var ConnHdlr vc_conn; - - f_init(); - - vc_conn := f_ConnHdlr_spawn(refers(f_TC_e_rab_release_ind), pars); - vc_conn.done; + f_TC_exec(refers(f_TC_e_rab_release_ind)); }
/* Test E-RAB SETUP procedure being aborted by the S1GW due to @@ -418,13 +400,7 @@ f_ConnHdlr_s1ap_unregister(g_pars.genb_id); } testcase TC_e_rab_setup_failure() runs on test_CT { - var ConnHdlrPars pars := valueof(t_ConnHdlrPars); - var ConnHdlr vc_conn; - - f_init(); - - vc_conn := f_ConnHdlr_spawn(refers(f_TC_e_rab_setup_failure), pars); - vc_conn.done; + f_TC_exec(refers(f_TC_e_rab_setup_failure)); }
/* Test INITIAL CONTEXT SETUP procedure (successful case) */ @@ -439,34 +415,21 @@ f_ConnHdlr_s1ap_disconnect(); f_ConnHdlr_s1ap_unregister(g_pars.genb_id); } -private function f_TC_initial_ctx_setup_exec(integer num_enbs, integer num_erabs) -runs on test_CT { - var ConnHdlrList vc_conns; - - f_init(); - - for (var integer i := 0; i < num_enbs; i := i + 1) { - var ConnHdlrPars pars := valueof(t_ConnHdlrPars(i, num_erabs)); - vc_conns[i] := f_ConnHdlr_spawn(refers(f_TC_initial_ctx_setup), pars); - } - - f_ConnHdlrList_all_done(vc_conns); -} /* 1 E-RAB at a time, single eNB */ testcase TC_initial_ctx_setup() runs on test_CT { - f_TC_initial_ctx_setup_exec(num_enbs := 1, num_erabs := 1); + f_TC_exec(refers(f_TC_initial_ctx_setup)); } /* 1 E-RAB at a time, multiple eNB connections */ testcase TC_initial_ctx_setup_multi() runs on test_CT { - f_TC_initial_ctx_setup_exec(num_enbs := mp_multi_enb_num, num_erabs := 1); + f_TC_exec(refers(f_TC_initial_ctx_setup), mp_multi_enb_num); } /* 3 E-RABs at a time, single eNB */ testcase TC_initial_ctx_setup3() runs on test_CT { - f_TC_initial_ctx_setup_exec(num_enbs := 1, num_erabs := 3); + f_TC_exec(refers(f_TC_initial_ctx_setup), 1, 3); } /* 3 E-RABs at a time, multiple eNB connections */ testcase TC_initial_ctx_setup3_multi() runs on test_CT { - f_TC_initial_ctx_setup_exec(num_enbs := mp_multi_enb_num, num_erabs := 3); + f_TC_exec(refers(f_TC_initial_ctx_setup), mp_multi_enb_num, 3); }
/* Test INITIAL CONTEXT SETUP procedure (failure) */ @@ -502,13 +465,7 @@ f_ConnHdlr_s1ap_unregister(g_pars.genb_id); } testcase TC_initial_ctx_setup_failure() runs on test_CT { - var ConnHdlrPars pars := valueof(t_ConnHdlrPars); - var ConnHdlr vc_conn; - - f_init(); - - vc_conn := f_ConnHdlr_spawn(refers(f_TC_initial_ctx_setup_failure), pars); - vc_conn.done; + f_TC_exec(refers(f_TC_initial_ctx_setup_failure)); }
function f_TC_pfcp_heartbeat(charstring id) runs on ConnHdlr { @@ -525,13 +482,7 @@ setverdict(pass); } testcase TC_pfcp_heartbeat() runs on test_CT { - var ConnHdlrPars pars := valueof(t_ConnHdlrPars); - var ConnHdlr vc_conn; - - f_init(); - - vc_conn := f_ConnHdlr_spawn(refers(f_TC_pfcp_heartbeat), pars); - vc_conn.done; + f_TC_exec(refers(f_TC_pfcp_heartbeat)); }
control {