]> code.ossystems Code Review - openembedded-core.git/commitdiff
oeqa/oetest: Improve subprocess error reporting
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 15 Aug 2016 16:56:40 +0000 (17:56 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 17 Aug 2016 09:23:35 +0000 (10:23 +0100)
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 <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/oetest.py

index 514631249c87fe9e5c4bfd0d7687191c2d08b08f..cf7e8628d8d49857a4a791fd3fe369bf9d4b42aa 100644 (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