BSC_Tests_VAMOS: fix TC_vamos_multiplex_tch_f_tch_f
Properly clean up conns. To know when the multiplex is ready, use the
COORD port to tell the other component.
Related: OS#5444
Change-Id: I82b7eccd2ae30fdc3794ea9dad5d2d8f875d702d
diff --git a/bsc/BSC_Tests_VAMOS.ttcn b/bsc/BSC_Tests_VAMOS.ttcn
index ca722e7..9a53200 100644
--- a/bsc/BSC_Tests_VAMOS.ttcn
+++ b/bsc/BSC_Tests_VAMOS.ttcn
@@ -626,15 +626,27 @@
f_shutdown_helper();
}
+const charstring PRIMARY_LCHAN_DONE := "PRIMARY_LCHAN_DONE";
+const charstring MULTIPLEX_DONE := "MULTIPLEX_DONE";
+
/* First, primary lchan of TC_vamos_multiplex_tch_f_tch_f() */
private function f_TC_vamos_multiplex_tch_f_tch_f1(charstring id) runs on MSC_ConnHdlr {
f_est_lchan_and_mode_modify_to_vamos();
+ f_sleep(1.0);
+ COORD.send(PRIMARY_LCHAN_DONE);
f_logp(BSCVTY, "f_est_lchan_and_mode_modify_to_vamos done");
+ COORD.receive(MULTIPLEX_DONE);
+ f_perform_clear(RSL);
}
/* Second, VAMOS shadow lchan of TC_vamos_multiplex_tch_f_tch_f() */
private function f_TC_vamos_multiplex_tch_f_tch_f2(charstring id) runs on MSC_ConnHdlr {
+ f_sleep(1.0);
+ COORD.receive(PRIMARY_LCHAN_DONE);
f_est_and_reassign_to_secondary_lchan(valueof(t_RslChanNr_Osmo_VAMOS_Bm(1)));
+ f_sleep(1.0);
+ COORD.send(MULTIPLEX_DONE);
+ f_perform_clear(RSL);
}
/* Establish a primary lchan and modify it to VAMOS speech mode. Then establish
@@ -654,11 +666,14 @@
pars1.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
pars2.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
- vc_conn1 := f_start_handler(refers(f_TC_vamos_multiplex_tch_f_tch_f1), pars1);
- vc_conn1.done;
+ vc_conn1 := f_start_handler(refers(f_TC_vamos_multiplex_tch_f_tch_f1), pars1);
vc_conn2 := f_start_handler(refers(f_TC_vamos_multiplex_tch_f_tch_f2), pars2);
+ connect(vc_conn1:COORD, vc_conn2:COORD);
+
+ vc_conn1.done;
vc_conn2.done;
+
f_shutdown_helper();
}