test/py: Provide output from exceptions with RunAndLog()
Tests may want to look at the output from running a command, even if it fails (e.g. with a non-zero return code). Provide a means to obtain this. Another approach would be to return a class object containing both the output and the exception, but I'm not sure if that would result in a lot of refactoring. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Teddy Reed <teddy.reed@gmail.com>
This commit is contained in:
parent
3b8d9d977b
commit
86845bf38d
|
@ -101,6 +101,7 @@ class RunAndLog(object):
|
||||||
self.logfile = logfile
|
self.logfile = logfile
|
||||||
self.name = name
|
self.name = name
|
||||||
self.chained_file = chained_file
|
self.chained_file = chained_file
|
||||||
|
self.output = None
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""Clean up any resources managed by this object."""
|
"""Clean up any resources managed by this object."""
|
||||||
|
@ -109,6 +110,9 @@ class RunAndLog(object):
|
||||||
def run(self, cmd, cwd=None, ignore_errors=False):
|
def run(self, cmd, cwd=None, ignore_errors=False):
|
||||||
"""Run a command as a sub-process, and log the results.
|
"""Run a command as a sub-process, and log the results.
|
||||||
|
|
||||||
|
The output is available at self.output which can be useful if there is
|
||||||
|
an exception.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
cmd: The command to execute.
|
cmd: The command to execute.
|
||||||
cwd: The directory to run the command in. Can be None to use the
|
cwd: The directory to run the command in. Can be None to use the
|
||||||
|
@ -159,6 +163,9 @@ class RunAndLog(object):
|
||||||
self.logfile.write(self, output)
|
self.logfile.write(self, output)
|
||||||
if self.chained_file:
|
if self.chained_file:
|
||||||
self.chained_file.write(output)
|
self.chained_file.write(output)
|
||||||
|
|
||||||
|
# Store the output so it can be accessed if we raise an exception.
|
||||||
|
self.output = output
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
return output
|
return output
|
||||||
|
|
Loading…
Reference in New Issue