testsuite/cibuilder: append stdout and stderr to log file

Message ID 20250404095239.2544147-1-srinuvasan.a@siemens.com
State New
Headers show
Series testsuite/cibuilder: append stdout and stderr to log file | expand

Commit Message

srinuvasan.a April 4, 2025, 9:52 a.m. UTC
From: srinuvasan <srinuvasan.a@siemens.com>

With these changes, users can see their output of running
commands or set of commands in the launched qemu system.

This would be really helpful to see the actual output
of remotely running programs.

Signed-off-by: srinuvasan <srinuvasan.a@siemens.com>
---
 testsuite/cibuilder.py | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Uladzimir Bely April 8, 2025, 1:56 p.m. UTC | #1
On Fri, 2025-04-04 at 15:22 +0530, srinuvasan.a@siemens.com wrote:
> From: srinuvasan <srinuvasan.a@siemens.com>
> 
> With these changes, users can see their output of running
> commands or set of commands in the launched qemu system.
> 
> This would be really helpful to see the actual output
> of remotely running programs.
> 
> Signed-off-by: srinuvasan <srinuvasan.a@siemens.com>
> ---
>  testsuite/cibuilder.py | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py
> index e726ba87..c5ce7fc8 100755
> --- a/testsuite/cibuilder.py
> +++ b/testsuite/cibuilder.py
> @@ -738,6 +738,12 @@ class CIBuilder(Test):
>              self.log.info(f"Connect command:\n{cmd_prefix}")
>  
>              rc, stdout, stderr = self.remote_run(cmd, script,
> timeout)
> +
> +            stdout = stdout.decode('utf-8') if isinstance(stdout,
> bytes) else stdout
> +            stderr = stderr.decode('utf-8') if isinstance(stderr,
> bytes) else stderr

It would be better to use different variable to append to avocado log
since existing tests in downstream may expect data (stdout, stdeorr) of
original (bytes) type and use .decode() by their own.

> +            self.log.info("stdout log:\n" + stdout)
> +            self.log.info("stderr log:\n" + stderr)
> +
>              if rc != 0:
>                  if not keep:
>                      self.vm_turn_off(vm)

Patch

diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py
index e726ba87..c5ce7fc8 100755
--- a/testsuite/cibuilder.py
+++ b/testsuite/cibuilder.py
@@ -738,6 +738,12 @@  class CIBuilder(Test):
             self.log.info(f"Connect command:\n{cmd_prefix}")
 
             rc, stdout, stderr = self.remote_run(cmd, script, timeout)
+
+            stdout = stdout.decode('utf-8') if isinstance(stdout, bytes) else stdout
+            stderr = stderr.decode('utf-8') if isinstance(stderr, bytes) else stderr
+            self.log.info("stdout log:\n" + stdout)
+            self.log.info("stderr log:\n" + stderr)
+
             if rc != 0:
                 if not keep:
                     self.vm_turn_off(vm)