test-runner: fix verbose output with --valgrind

Since using --valgrind actually runs IWD using the valgrind
process the --verbose flag would only work if 'valgrind' was
also specified. This was taken into account with is_verbose
but the actual logic enabling stdout did not use that helper.
This was due, in part, to logging since is_verbose will always
return true if --log is used. To fix this a new flag was added
to is_verbose which omits the --log check to handle this
specific case.
This commit is contained in:
James Prestwood 2021-04-29 09:07:42 -07:00 committed by Denis Kenzior
parent acbbedb9d3
commit 4085aceb4a
1 changed files with 7 additions and 4 deletions

View File

@ -194,8 +194,11 @@ class Process:
self.io_position = self.stdout.tell()
if ctx:
# Verbose requested, add stdout/stderr to write FD list
if self.name in ctx.args.verbose:
# Verbose requested, add stdout/stderr to write FD list.
# This will end up always returning true if logging is
# on which isn't desired so pass log=False as to only
# allow stdout to processes listed in --verbose.
if ctx.is_verbose(self.name, log=False):
self.verbose = True
# Add output file to FD list
@ -693,14 +696,14 @@ class Namespace:
pid = self.start_process(args, env=env)
return pid
def is_verbose(self, process):
def is_verbose(self, process, log=True):
process = os.path.basename(process)
if self.args is None:
return False
# every process is verbose when logging is enabled
if self.args.log:
if log and self.args.log:
return True
if process in self.args.verbose: