[lldb] add printing of stdout compile errors to lldbsuite

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
This commit is contained in:
Benson Li 2020-07-22 16:22:59 +02:00 committed by Pavel Labath
parent e2529e2dfa
commit c9d5a3058f
3 changed files with 6 additions and 9 deletions

View 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:

View 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)

View 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)