From 990b520b1f6d572ac1603c6ba53424017a44adf2 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Thu, 12 Mar 2020 17:45:22 +0100 Subject: [PATCH] osmo_ms_driver: Store cfg files and logs in correct test rundir This way all the content is available as an artifact when we run it inside osmo-gsm-tester. Change-Id: I3ab493e6aafef90bb0c5d98e552840fd11c43079 --- src/osmo_ms_driver/starter.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/osmo_ms_driver/starter.py b/src/osmo_ms_driver/starter.py index 2ae423d0..8757e40f 100644 --- a/src/osmo_ms_driver/starter.py +++ b/src/osmo_ms_driver/starter.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from osmo_gsm_tester import log, process, template +from osmo_gsm_tester import log, util, process, template from .test_support import ResultStore @@ -38,6 +38,7 @@ class Launcher(log.Origin): self._env = env self._name_number = name_number self._tmp_dir = tmp_dir.new_dir(self.name()) + self.run_dir = self._tmp_dir def name_number(self): return self._name_number @@ -52,14 +53,16 @@ class OsmoVirtPhy(Launcher): return self._phy_filename def start(self, loop, suite_run=None): + if suite_run is not None: # overwrite run_dir to store files if run from inside osmo-gsm-tester: + self.run_dir = util.Dir(suite_run.get_test_run_dir().new_dir(self.name())) if len(self._phy_filename.encode()) > 107: raise log.Error('Path for unix socket is longer than max allowed len for unix socket path (107):', self._phy_filename) self.log("Starting virtphy") args = [self._binary, "--l1ctl-sock=" + self._phy_filename] - self._vphy_proc = process.Process(self.name(), self._tmp_dir, + self._vphy_proc = process.Process(self.name(), self.run_dir, args, env=self._env) - if suite_run: + if suite_run is not None: suite_run.remember_to_stop(self._vphy_proc) self._vphy_proc.launch() @@ -109,7 +112,7 @@ class OsmoMobile(Launcher): self._cfg['test'][key] = value def write_lua_cfg(self): - lua_cfg_file = os.path.join(self._tmp_dir, "lua_" + self._name_number + ".lua") + lua_cfg_file = self.run_dir.new_file("lua_" + self._name_number + ".lua") lua_script = template.render(self._lua_template, self._cfg) with open(lua_cfg_file, 'w') as w: w.write(lua_script) @@ -125,22 +128,24 @@ class OsmoMobile(Launcher): 'ms_number': self._name_number, } } - mob_cfg_file = os.path.join(self._tmp_dir, "mob_" + self._name_number + ".cfg") + mob_cfg_file = self.run_dir.new_file("mob_" + self._name_number + ".cfg") mob_vty = template.render(self._cfg_template, cfg) with open(mob_cfg_file, 'w') as w: w.write(mob_vty) return mob_cfg_file def start(self, loop, suite_run=None): + if suite_run is not None: # overwrite run_dir to store files if run from inside osmo-gsm-tester: + self.run_dir = util.Dir(suite_run.get_test_run_dir().new_dir(self.name())) lua_filename = self.write_lua_cfg() mob_filename = self.write_mob_cfg(lua_filename, self._phy_filename) self.log("Starting mobile") # Let the kernel pick an unused port for the VTY. args = [self._binary, "-c", mob_filename] - self._omob_proc = process.Process(self.name(), self._tmp_dir, + self._omob_proc = process.Process(self.name(), self.run_dir, args, env=self._env) - if suite_run: + if suite_run is not None: suite_run.remember_to_stop(self._omob_proc) self._omob_proc.launch()