[dexter] Fix feature tests on Windows

First, add LLD as a dependency on Windows. The windows batch scripts
pass -fuse-ld=lld, so they need it.

Second, decode builder stdout/stderr even if the command fails.
Otherwise it gets printed as b'line 1\n\rline 2\n\r'.

Last, make the batch script one line less noisy. We might want to try to
do more here, though. It would be nice if we could get as close to
possible as lit, where you can literally copy & paste the failing
command to re-run it.

With the two changes above, now the feature tests that use clang++.bat
pass for me. The clang-cl_vs2015 ones still fail, and I'll fix them
separately.

Reviewers: jmorse

Differential Revision: https://reviews.llvm.org/D69725
This commit is contained in:
Reid Kleckner 2019-11-01 11:47:53 -07:00
parent 7035ea6e3e
commit 63f49465c3
3 changed files with 9 additions and 2 deletions

View File

@ -13,6 +13,11 @@ set(DEBUGINFO_TEST_DEPS
not
)
# The Windows builder scripts pass -fuse-ld=lld.
if (WIN32)
set(DEBUGINFO_TEST_DEPS ${DEBUGINFO_TEST_DEPS} lld)
endif()
# If we don't already have Python 3, throw away any previous results and try to
# find it again.
set(DEBUGINFO_UNSET_PYTHON3 OFF)

View File

@ -80,12 +80,14 @@ def run_external_build_script(context, script_path, source_files,
stderr=subprocess.PIPE)
out, err = process.communicate()
returncode = process.returncode
out = out.decode('utf-8')
err = err.decode('utf-8')
if returncode != 0:
raise BuildScriptException(
'{}: failed with returncode {}.\nstdout:\n{}\n\nstderr:\n{}\n'.
format(script_path, returncode, out, err),
script_error=err)
return out.decode('utf-8'), err.decode('utf-8'), builderIR
return out, err, builderIR
except OSError as e:
raise BuildScriptException('{}: {}'.format(e.strerror, script_path))

View File

@ -1,4 +1,4 @@
setlocal EnableDelayedExpansion
@setlocal EnableDelayedExpansion
for %%I in (%SOURCE_INDEXES%) do (
%PATHTOCLANGPP% -fuse-ld=lld -c !COMPILER_OPTIONS_%%I! !SOURCE_FILE_%%I! -o !OBJECT_FILE_%%I!