kunit: tool: print out stderr from make (like build warnings)
authorDaniel Latypov <dlatypov@google.com>
Thu, 29 Oct 2020 22:09:29 +0000 (15:09 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Tue, 10 Nov 2020 20:43:22 +0000 (13:43 -0700)
commit390881448b1ff1e9d82896abbbda7cdb8e0be27c
tree2bf1c64cf8f22fa4e6d796ec7bd2394a75dd5205
parent873ddeb881e055fb0c4e371cc3a006bfd9388f00
kunit: tool: print out stderr from make (like build warnings)

Currently the tool redirects make stdout + stderr, and only shows them
if the make command fails.
This means build warnings aren't shown to the user.

This change prints the contents of stderr even if make succeeds, under
the assumption these are only build warnings or other messages the user
likely wants to see.

We drop stdout from the raised exception since we can no longer easily
collate stdout and stderr and just showing the stderr seems fine.

Example with a warning:

[14:56:35] Building KUnit Kernel ...
../lib/kunit/kunit-test.c: In function ‘kunit_test_successful_try’:
../lib/kunit/kunit-test.c:19:6: warning: unused variable ‘unused’ [-Wunused-variable]
   19 |  int unused;
      |      ^~~~~~

[14:56:40] Starting KUnit Kernel ...

Note the stderr has a trailing \n, and since we use print, we add
another, but it helps separate make and kunit.py output.

Example with a build error:

[15:02:45] Building KUnit Kernel ...
ERROR:root:../lib/kunit/kunit-test.c: In function ‘kunit_test_successful_try’:
../lib/kunit/kunit-test.c:19:2: error: unknown type name ‘invalid_type’
   19 |  invalid_type *test = data;
      |  ^~~~~~~~~~~~
...

Signed-off-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/kunit/kunit_kernel.py