From 5eae2c50b018891b5f9c3da48e4637e0d93e5820 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Wed, 18 Sep 2019 16:50:38 +0200 Subject: Add a per-test log file This way there's no need to go over hours of logging in the main log to find information of a failing test. Change-Id: I8cb79c7855e0bc14282d6728841e92ba22699eed --- src/osmo_gsm_tester/test.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/osmo_gsm_tester/test.py b/src/osmo_gsm_tester/test.py index 6f141f1..4d4353a 100644 --- a/src/osmo_gsm_tester/test.py +++ b/src/osmo_gsm_tester/test.py @@ -42,6 +42,7 @@ class Test(log.Origin): self.duration = 0 self.fail_type = None self.fail_message = None + self.log_target = None def get_run_dir(self): if self._run_dir is None: @@ -50,6 +51,7 @@ class Test(log.Origin): def run(self): try: + self.log_target = log.FileLogTarget(self.get_run_dir().new_child('log')).set_all_levels(log.L_DBG).style_change(trace=True) log.large_separator(self.suite_run.trial.name(), self.suite_run.name(), self.name(), sublevel=3) self.status = Test.UNKNOWN self.start_timestamp = time.time() @@ -81,6 +83,10 @@ class Test(log.Origin): # when the program is aborted by a signal (like Ctrl-C), escalate to abort all. self.err('TEST RUN ABORTED: %s' % type(e).__name__) raise + finally: + if self.log_target: + self.log_target.remove() + self.log_target = None def name(self): l = log.get_line_for_src(self.path) -- cgit v1.2.3