kunit: capture stderr on all make subprocess calls
authorWill Chen <chenwi@google.com>
Wed, 8 Jul 2020 21:35:43 +0000 (14:35 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 17 Jul 2020 20:13:19 +0000 (14:13 -0600)
Direct stderr to subprocess.STDOUT so error messages get included in the
subprocess.CalledProcessError exceptions output field. This results in
more meaningful error messages for the user.

This is already being done in the make_allyesconfig method. Do the same
for make_mrproper, make_olddefconfig, and make methods.

With this, failures on unclean trees [1] will give users an error
message that includes:
"The source tree is not clean, please run 'make ARCH=um mrproper'"

[1] https://bugzilla.kernel.org/show_bug.cgi?id=205219

Signed-off-by: Will Chen <chenwi@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Tested-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/kunit/kunit_kernel.py

index 63dbda2..e20e205 100644 (file)
@@ -34,7 +34,7 @@ class LinuxSourceTreeOperations(object):
 
        def make_mrproper(self):
                try:
-                       subprocess.check_output(['make', 'mrproper'])
+                       subprocess.check_output(['make', 'mrproper'], stderr=subprocess.STDOUT)
                except OSError as e:
                        raise ConfigError('Could not call make command: ' + e)
                except subprocess.CalledProcessError as e:
@@ -47,7 +47,7 @@ class LinuxSourceTreeOperations(object):
                if build_dir:
                        command += ['O=' + build_dir]
                try:
-                       subprocess.check_output(command, stderr=subprocess.PIPE)
+                       subprocess.check_output(command, stderr=subprocess.STDOUT)
                except OSError as e:
                        raise ConfigError('Could not call make command: ' + e)
                except subprocess.CalledProcessError as e:
@@ -77,7 +77,7 @@ class LinuxSourceTreeOperations(object):
                if build_dir:
                        command += ['O=' + build_dir]
                try:
-                       subprocess.check_output(command)
+                       subprocess.check_output(command, stderr=subprocess.STDOUT)
                except OSError as e:
                        raise BuildError('Could not call execute make: ' + e)
                except subprocess.CalledProcessError as e: