oeqa/oetest: Improve subprocess error reporting

Without this, we get to know the command failed and the exit code but
have no idea how the command failed since we don't get the output by
default.

This makes it much easier to see what went wrong and stand a chance of
fixing it.

(From OE-Core rev: b020b01d41ccaae5d679f1f7950af2e1a1788d39)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2016-08-15 17:56:40 +01:00
parent a18e3c92e9
commit 896f1c7696

View File

@@ -136,6 +136,15 @@ 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
class oeSDKTest(oeTest):
def __init__(self, methodName='runTest'):
self.sdktestdir = oeSDKTest.tc.sdktestdir