Use a subdir of run_dir for each test
Processes created have the scope of the test, so we should store
everything in a per-suite_run/per-test directory, otherwise everything
is stored in the same trial run_dir directory and it's really messy.
Change-Id: I06be2dd21710e14c1337d13b1fe6c2f68f037957
diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py
index 5c567f8..c78c9fc 100644
--- a/src/osmo_gsm_tester/suite.py
+++ b/src/osmo_gsm_tester/suite.py
@@ -76,6 +76,8 @@
PASS = 'pass'
FAIL = 'FAIL'
+ _run_dir = None
+
def __init__(self, suite_run, test_basename):
self.basename = test_basename
super().__init__(log.C_TST, self.basename)
@@ -87,6 +89,11 @@
self.fail_type = None
self.fail_message = None
+ def get_run_dir(self):
+ if self._run_dir is None:
+ self._run_dir = util.Dir(self.suite_run.get_run_dir().new_dir(self._name))
+ return self._run_dir
+
def run(self):
try:
log.large_separator(self.suite_run.trial.name(), self.suite_run.name(), self.name(), sublevel=3)
@@ -165,6 +172,7 @@
_resource_requirements = None
_config = None
_processes = None
+ _run_dir = None
def __init__(self, trial, suite_scenario_str, suite_definition, scenarios=[]):
super().__init__(log.C_TST, suite_scenario_str)
@@ -209,6 +217,16 @@
config.combine(combination, c)
return combination
+ def get_run_dir(self):
+ if self._run_dir is None:
+ self._run_dir = util.Dir(self.trial.get_run_dir().new_dir(self.name()))
+ return self._run_dir
+
+ def get_test_run_dir(self):
+ if self.current_test:
+ return self.current_test.get_run_dir()
+ return self.get_run_dir()
+
def resource_requirements(self):
if self._resource_requirements is None:
self._resource_requirements = self.combined('resources')
@@ -236,6 +254,7 @@
if names and not test.name() in names:
test.set_skip()
continue
+ self.current_test = test
test.run()
except Exception:
log.log_exn()