[libcxx] [test] Improve error reporting around invoked commands

This was requested in the review of D145807, but I had missed to
apply it before landing the patch.

Differential Revision: https://reviews.llvm.org/D150444
This commit is contained in:
Martin Storsjö 2023-05-12 16:17:10 +03:00
parent 4072c8aee4
commit 391b51b18f

View File

@ -228,9 +228,9 @@ def commandOutput(config, command):
could appear on the right-hand-side of a `RUN:` keyword.
"""
with _makeConfigTest(config) as test:
out, _, exitCode, _, _ = _executeScriptInternal(test, command)
out, err, exitCode, _, cmd = _executeScriptInternal(test, command)
if exitCode != 0:
raise ConfigurationRuntimeError()
raise ConfigurationRuntimeError("Failed to run command: {}\nstderr is:\n{}".format(cmd, err))
return out
@_memoizeExpensiveOperation(lambda c, l: (c.substitutions, c.environment, l))
@ -281,11 +281,11 @@ def compilerMacros(config, flags=''):
# include <__config_site>
#endif
""")
unparsedOutput, err, exitCode, _, _ = _executeScriptInternal(test, [
unparsedOutput, err, exitCode, _, cmd = _executeScriptInternal(test, [
"%{{cxx}} %s -dM -E %{{flags}} %{{compile_flags}} {}".format(flags)
])
if exitCode != 0:
raise ConfigurationCompilationError("Failed to retrieve compiler macros, stderr is:\n{}".format(err))
raise ConfigurationCompilationError("Failed to retrieve compiler macros, compiler invocation is:\n{}\nstderr is:\n{}".format(cmd, err))
parsedMacros = dict()
defines = (l.strip() for l in unparsedOutput.split('\n') if l.startswith('#define '))
for line in defines: