This addresses a UnicodeEncodeError when using Python 3.6.5 in Windows
10.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
While the test suite was already passing for me in Windows and Ubuntu using either Python 2 or 3, it raised an exception when passing -a to lit (or if the test suite failed and managed to print output containing special characters) in Ubuntu when using Python 2. This change fixes that.
Also rebased onto a more recent master.
Comment Actions
I have a failure on my bot for tools/llvm-ar/mri-utf8.test ; and this patch is making it worse.
Without this patch I have:
: 'RUN: at line 23'; env LANG=en_US.UTF-8 "/usr/bin/python" -c "assert open(u'\U000000A3.txt', 'rb').read() == b'contents\n'" -- Exit Code: 1 Command Output (stderr): -- Traceback (most recent call last): File "<string>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 0: ordinal not in range(128) --
I suspect en_US.UTF-8 is just not available on the system.
After this patch however the error becomes:
[3110/3111] Running the LLVM regression tests -- Testing: 34143 tests, 64 workers -- FAIL: LLVM :: tools/llvm-ar/mri-utf8.test (32130 of 34143) ******************** TEST 'LLVM :: tools/llvm-ar/mri-utf8.test' FAILED ******************** Exception in thread Thread-3: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 754, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib/python2.7/multiprocessing/pool.py", line 408, in _handle_results cache[job]._set(i, obj) File "/usr/lib/python2.7/multiprocessing/pool.py", line 577, in _set self._callback(self._value) File "/var/lib/buildkite-agent/builds/buildkite-6dd7db7bf5-rcq8r-1/mlir/llvm-coverage/llvm/utils/lit/lit/run.py", line 136, in <lambda> callback=lambda r, t=test: self._process_result(t, r)) File "/var/lib/buildkite-agent/builds/buildkite-6dd7db7bf5-rcq8r-1/mlir/llvm-coverage/llvm/utils/lit/lit/run.py", line 82, in _process_result self.progress_callback(test) File "/var/lib/buildkite-agent/builds/buildkite-6dd7db7bf5-rcq8r-1/mlir/llvm-coverage/llvm/utils/lit/lit/main.py", line 194, in progress_callback display.update(test) File "/var/lib/buildkite-agent/builds/buildkite-6dd7db7bf5-rcq8r-1/mlir/llvm-coverage/llvm/utils/lit/lit/display.py", line 52, in update self.print_result(test) File "/var/lib/buildkite-agent/builds/buildkite-6dd7db7bf5-rcq8r-1/mlir/llvm-coverage/llvm/utils/lit/lit/display.py", line 85, in print_result out = out.decode(encoding=sys.stdout.encoding) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 492: ordinal not in range(128)
And lit will just hang there forever.
Comment Actions
Can you please try adding an errors='ignore' argument to the failing decode call? Or I can push a patch if that's easier. Thanks.