summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-12-09 14:44:50 +0100
committerHarald Welte <laforge@osmocom.org>2020-12-09 15:31:55 +0100
commitb9f0fdc1778220908aecc1f1b5b389c3e5e427bb (patch)
tree3f3933e61c20c1201601a5450267efc6472add8e
parent425d3763873ee6e5b0cf42e09659dda604e78a8b (diff)
gbproxy: properly shutdown at the end of the test
Destroying at least most of the components in an orderly fashion avoids at least most of the race conditions during test shutdown. Change-Id: I2aa4ef8a70c1139893c9621f5a6b6007b221c13d
-rw-r--r--gbproxy/GBProxy_Tests.ttcn21
1 files changed, 20 insertions, 1 deletions
diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 7811a01..9bd0550 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -14,6 +14,7 @@ module GBProxy_Tests {
import from General_Types all;
import from Osmocom_Types all;
+import from Misc_Helpers all;
import from GSM_Types all;
import from Native_Functions all;
import from NS_Types all;
@@ -398,6 +399,15 @@ private function f_init_gb_sgsn(inout GbInstance gb, charstring id, integer offs
}
+private function f_destroy_gb(inout GbInstance gb) runs on test_CT {
+ gb.vc_NS.stop;
+ gb.vc_BSSGP.stop;
+
+ for (var integer i := 0; i < lengthof(gb.cfg.bvc); i := i + 1) {
+ gb.vc_BSSGP_BVC[i].stop;
+ }
+}
+
private function f_init_vty() runs on test_CT {
map(self:GBPVTY, system:GBPVTY);
f_vty_set_prompts(GBPVTY);
@@ -513,7 +523,16 @@ function f_init(float t_guard := 30.0) runs on test_CT {
}
function f_cleanup() runs on test_CT {
- self.stop;
+ var integer i;
+
+ for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) {
+ f_destroy_gb(g_sgsn[i]);
+ }
+ for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) {
+ f_destroy_gb(g_pcu[i]);
+ }
+
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, pass);
}
type function void_fn(charstring id) runs on BSSGP_ConnHdlr;