oeqa: add output to subprocess exceptions

Out of the box subprocess.CalledProcessError.__str__() just displays the command
and exit code, which isn't very useful for debugging.

Add a function to oeqa.utils.subprocesstweak to monkey-patch __str__() so that
it can also display the value of stdout and stderr.

(From OE-Core rev: c55401ba1646202fa36e4973b05dbacaa146cb16)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2017-03-01 12:07:44 +00:00
committed by Richard Purdie
parent 30ad362417
commit 726832895d
2 changed files with 19 additions and 9 deletions

View File

@@ -135,15 +135,6 @@ class oeRuntimeTest(oeTest):
if status != 0:
return status
class OETestCalledProcessError(subprocess.CalledProcessError):
def __str__(self):
if hasattr(self, "stderr"):
return "Command '%s' returned non-zero exit status %d with output %s and stderr %s" % (self.cmd, self.returncode, self.output, self.stderr)
else:
return "Command '%s' returned non-zero exit status %d with output %s" % (self.cmd, self.returncode, self.output)
subprocess.CalledProcessError = OETestCalledProcessError
def getmodule(pos=2):
# stack returns a list of tuples containg frame information
# First element of the list the is current frame, caller is 1