From 005e5fc0eb0f6fff8622bb552c5b350a79977eb1 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sat, 24 Dec 2022 10:18:11 +0100 Subject: [PATCH] support/tests: print failed command and output on assertRunOK error 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 Cc: Thomas Petazzoni Signed-off-by: Thomas Petazzoni (cherry picked from commit 44161560dd52ebe9a41ee6e5ec8cacb2a9fe48ec) Signed-off-by: Peter Korsgaard --- 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)) + )