nitb_netreg_mass: Allow a suite to configure num subscriber
Remove hardcoded configuration and replace it with a reservation in
the suite.
Change-Id: Ic9fd560c2924731e4fd6eea5aaf3ad565cb4ef52
diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py
index 8500607..2e3a648 100644
--- a/src/osmo_ms_driver/location_update_test.py
+++ b/src/osmo_ms_driver/location_update_test.py
@@ -19,7 +19,7 @@
from copy import copy
from osmo_gsm_tester import log
from .starter import OsmoVirtPhy, OsmoMobile
-from .test_support import imsi_ki_gen, Results
+from .test_support import Results
from datetime import timedelta
@@ -56,42 +56,53 @@
TEMPLATE_LUA = "osmo-mobile-lu.lua"
TEMPLATE_CFG = "osmo-mobile.cfg"
- def __init__(self, name, options, number_of_ms, cdf_function,
+ def __init__(self, name, options, cdf_function,
event_server, tmp_dir, suite_run=None):
super().__init__(log.C_RUN, name)
self._binary_options = options
- self._number_of_ms = number_of_ms
self._cdf = cdf_function
- self._cdf.set_target(number_of_ms)
self._suite_run = suite_run
+ self._tmp_dir = tmp_dir
self._unstarted = []
self._mobiles = []
self._phys = []
self._results = {}
- imsi_gen = imsi_ki_gen()
- self._outstanding = number_of_ms
- for i in range(0, number_of_ms):
- ms_name = "%.5d" % i
-
- phy = OsmoVirtPhy(options.virtphy, options.env,
- ms_name, tmp_dir)
- self._phys.append(phy)
-
- launcher = OsmoMobile(options.mobile, options.env,
- ms_name, tmp_dir, self.TEMPLATE_LUA,
- self.TEMPLATE_CFG, imsi_gen,
- phy.phy_filename(),
- event_server.server_path())
- self._results[ms_name] = LUResult(ms_name)
- self._mobiles.append(launcher)
self._event_server = event_server
self._event_server.register(self.handle_msg)
- self._unstarted = copy(self._mobiles)
self._started = []
+ self._subscribers = []
- def mobiles(self):
- return self._mobiles
+ def subscriber_add(self, subscriber):
+ """
+ Adds a subscriber to the list of subscribers.
+
+ Must be called before starting the testcase.
+ """
+ self._subscribers.append(subscriber)
+
+ def configure_tasks(self):
+ """Sets up the test run."""
+
+ self._cdf.set_target(len(self._subscribers))
+ self._outstanding = len(self._subscribers)
+ for i in range(0, self._outstanding):
+ ms_name = "%.5d" % i
+
+ phy = OsmoVirtPhy(self._binary_options.virtphy,
+ self._binary_options.env,
+ ms_name, self._tmp_dir)
+ self._phys.append(phy)
+
+ launcher = OsmoMobile(self._binary_options.mobile,
+ self._binary_options.env,
+ ms_name, self._tmp_dir, self.TEMPLATE_LUA,
+ self.TEMPLATE_CFG, self._subscribers[i],
+ phy.phy_filename(),
+ self._event_server.server_path())
+ self._results[ms_name] = LUResult(ms_name)
+ self._mobiles.append(launcher)
+ self._unstarted = copy(self._mobiles)
def pre_launch(self, loop):
"""
@@ -111,6 +122,7 @@
def prepare(self, loop):
self.log("Starting testcase")
+ self.configure_tasks()
self.pre_launch(loop)
self._start_time = time.clock_gettime(time.CLOCK_MONOTONIC)