From: Richard Purdie Date: Mon, 15 Aug 2016 16:56:40 +0000 (+0100) Subject: oeqa/oetest: Improve subprocess error reporting X-Git-Tag: uninative-1.4~599 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=b020b01d41ccaae5d679f1f7950af2e1a1788d39;p=openembedded-core.git 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. Signed-off-by: Richard Purdie Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py index 514631249c..cf7e8628d8 100644 --- a/meta/lib/oeqa/oetest.py +++ b/meta/lib/oeqa/oetest.py @@ -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