[Buildroot] [git commit branch/2022.02.x] support/tests: print failed command and output on assertRunOK error
Peter Korsgaard
peter at korsgaard.com
Sun Jan 1 18:34:40 UTC 2023
commit: https://git.buildroot.net/buildroot/commit/?id=005e5fc0eb0f6fff8622bb552c5b350a79977eb1
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/2022.02.x
Currently, when asserting that a command succeeded, we just capture the
return code of the command. If that is not zero, the assertion fails,
but the error message is not very splicit:
AssertionError: 1 != 0
Replace the error message with an explicit message that dumps the failed
command, the error code, and the resulting output.
Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
(cherry picked from commit 44161560dd52ebe9a41ee6e5ec8cacb2a9fe48ec)
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
---
support/testing/infra/basetest.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/support/testing/infra/basetest.py b/support/testing/infra/basetest.py
index 96c6848dfc..45bcd4c2e2 100644
--- a/support/testing/infra/basetest.py
+++ b/support/testing/infra/basetest.py
@@ -88,7 +88,12 @@ class BRTest(BRConfigTest):
super(BRTest, self).tearDown()
# Run the given 'cmd' with a 'timeout' on the target and
- # assert that the command succeeded
+ # assert that the command succeeded; on error, print the
+ # faulty command and its output
def assertRunOk(self, cmd, timeout=-1):
- _, exit_code = self.emulator.run(cmd, timeout)
- self.assertEqual(exit_code, 0)
+ out, exit_code = self.emulator.run(cmd, timeout)
+ self.assertEqual(
+ exit_code,
+ 0,
+ "\nFailed to run: {}\noutput was:\n{}".format(cmd, ' '+'\n '.join(out))
+ )
More information about the buildroot
mailing list