[lldb] add printing of stdout compile errors to lldbsuite
authorBenson Li <bensonbinbinli@gmail.com>
Wed, 22 Jul 2020 14:22:59 +0000 (16:22 +0200)
committerPavel Labath <pavel@labath.sk>
Wed, 22 Jul 2020 14:38:20 +0000 (16:38 +0200)
Summary: Add printing of the output of stdout during compile errors, in
addition to stderr output.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D83425

lldb/packages/Python/lldbsuite/test/lldbtest.py
lldb/packages/Python/lldbsuite/test_event/build_exception.py
lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py

index d73d534..4aad286 100644 (file)
@@ -426,7 +426,7 @@ def system(commands, **kwargs):
         process = Popen(
             shellCommand,
             stdout=PIPE,
-            stderr=PIPE,
+            stderr=STDOUT,
             shell=True,
             **kwargs)
         pid = process.pid
@@ -440,14 +440,12 @@ def system(commands, **kwargs):
             cpe = CalledProcessError(retcode, cmd)
             # Ensure caller can access the stdout/stderr.
             cpe.lldb_extensions = {
-                "stdout_content": this_output,
-                "stderr_content": this_error,
+                "combined_output": this_output,
                 "command": shellCommand
             }
             raise cpe
         output = output + this_output.decode("utf-8")
-        error = error + this_error.decode("utf-8")
-    return (output, error)
+    return output
 
 
 def getsource_if_available(obj):
@@ -1280,7 +1278,7 @@ class Base(unittest2.TestCase):
         version = 'unknown'
 
         compiler = self.getCompilerBinary()
-        version_output = system([[compiler, "-v"]])[1]
+        version_output = system([[compiler, "-v"]])
         for line in version_output.split(os.linesep):
             m = re.search('version ([0-9\.]+)', line)
             if m:
index 3347d9f..993214e 100644 (file)
@@ -4,8 +4,7 @@ class BuildError(Exception):
         super(BuildError, self).__init__("Error when building test subject")
         self.command = called_process_error.lldb_extensions.get(
             "command", "<command unavailable>")
-        self.build_error = called_process_error.lldb_extensions.get(
-            "stderr_content", "<error output unavailable>")
+        self.build_error = called_process_error.lldb_extensions["combined_output"]
 
     def __str__(self):
         return self.format_build_error(self.command, self.build_error)
index f5cf525..aa5e20b 100644 (file)
@@ -146,7 +146,7 @@ class SkipSummaryDataFormatterTestCase(TestBase):
         if self.getCompiler().endswith('gcc') and not self.getCompiler().endswith('llvm-gcc'):
             import re
             gcc_version_output = system(
-                [[lldbutil.which(self.getCompiler()), "-v"]])[1]
+                [[lldbutil.which(self.getCompiler()), "-v"]])
             self.trace("my output:", gcc_version_output)
             for line in gcc_version_output.split(os.linesep):
                 m = re.search('\(Apple Inc\. build ([0-9]+)\)', line)