From 54552db7bad7a4f1662bca4e8c636395193f207d Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Thu, 31 Mar 2022 16:16:32 -0700 Subject: [PATCH] test-runner: fix logging for namespaces and pre-test processes Namespace process logs were appearing under 'ip' (and also overwriting actual 'ip' logs) since they were executed with 'ip netns exec '. Instead special case this and append '-' to the log file name. In addition processes executed prior to any tests were being put under a folder (name of testhome directory). Now this case is detected and these logs are put at the top level log directory. --- tools/run-tests | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tools/run-tests b/tools/run-tests index ed6478ef..078288c1 100755 --- a/tools/run-tests +++ b/tools/run-tests @@ -129,6 +129,8 @@ class Process(subprocess.Popen): self.killed = False self.namespace = namespace + logfile = args[0] + if not self.ctx: global config self.ctx = config.ctx @@ -138,6 +140,7 @@ class Process(subprocess.Popen): if namespace: args = ['ip', 'netns', 'exec', namespace] + args + logfile += '-%s' % namespace if outfile: # outfile is only used by iwmon, in which case we don't want @@ -145,9 +148,16 @@ class Process(subprocess.Popen): self._append_outfile(outfile, append=False) if self.ctx.args.log: - logfile = '%s/%s/%s' % (self.ctx.args.log, - os.path.basename(os.getcwd()), - args[0]) + testdir = os.getcwd() + + # Special case any processes started prior to a test + # (i.e. from testhome). Put these in the root log directory + if testdir == self.ctx.args.testhome: + testdir = '.' + else: + testdir = os.path.basename(testdir) + + logfile = '%s/%s/%s' % (self.ctx.args.log, testdir, logfile) self._append_outfile(logfile) super().__init__(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,