mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-01 15:21:00 +00:00
[lit] Don't fail when printing test output with special chars
This addresses a UnicodeEncodeError when using Python 3.6.5 in Windows 10. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D69207
This commit is contained in:
parent
40bb4ec570
commit
728fa0079b
@ -70,7 +70,20 @@ class ProgressDisplay(object):
|
||||
if test.result.code.isFailure:
|
||||
print("%s TEST '%s' FAILED %s" % ('*'*20, test.getFullName(),
|
||||
'*'*20))
|
||||
print(test.result.output)
|
||||
out = test.result.output
|
||||
# Encode/decode so that, when using Python 3.6.5 in Windows 10,
|
||||
# print(out) doesn't raise UnicodeEncodeError if out contains
|
||||
# special characters. However, Python 2 might try to decode
|
||||
# as part of the encode call if out is already encoded, so skip
|
||||
# encoding if it raises UnicodeDecodeError.
|
||||
if sys.stdout.encoding:
|
||||
try:
|
||||
out = out.encode(encoding=sys.stdout.encoding,
|
||||
errors="replace")
|
||||
except UnicodeDecodeError:
|
||||
pass
|
||||
out = out.decode(encoding=sys.stdout.encoding)
|
||||
print(out)
|
||||
print("*" * 20)
|
||||
|
||||
# Report test metrics, if present.
|
||||
|
7
utils/lit/tests/Inputs/shtest-shell/stdout-encoding.txt
Normal file
7
utils/lit/tests/Inputs/shtest-shell/stdout-encoding.txt
Normal file
@ -0,0 +1,7 @@
|
||||
# Check that lit doesn't fail when printing special characters in its test
|
||||
# results.
|
||||
|
||||
# RUN: cat diff-in.bin
|
||||
|
||||
# Fail so lit will print output.
|
||||
# RUN: false
|
@ -8,7 +8,7 @@
|
||||
#
|
||||
# END.
|
||||
|
||||
# CHECK: Failing Tests (32)
|
||||
# CHECK: Failing Tests (33)
|
||||
# CHECK: Failing Tests (1)
|
||||
# CHECK: Failing Tests (2)
|
||||
# CHECK: error: argument --max-failures: requires positive integer, but found '0'
|
||||
|
@ -413,5 +413,17 @@
|
||||
# CHECK: PASS: shtest-shell :: rm-unicode-0.txt
|
||||
# CHECK: PASS: shtest-shell :: sequencing-0.txt
|
||||
# CHECK: XFAIL: shtest-shell :: sequencing-1.txt
|
||||
|
||||
# CHECK: FAIL: shtest-shell :: stdout-encoding.txt
|
||||
# CHECK: *** TEST 'shtest-shell :: stdout-encoding.txt' FAILED ***
|
||||
# CHECK: $ "cat" "diff-in.bin"
|
||||
# CHECK: # command output:
|
||||
# CHECK-NEXT: {{^.f.o.o.$}}
|
||||
# CHECK-NEXT: {{^.b.a.r..}}
|
||||
# CHECK-NEXT: {{^.b.a.z.$}}
|
||||
# CHECK-NOT: error
|
||||
# CHECK: $ "false"
|
||||
# CHECK: ***
|
||||
|
||||
# CHECK: PASS: shtest-shell :: valid-shell.txt
|
||||
# CHECK: Failing Tests (32)
|
||||
# CHECK: Failing Tests (33)
|
||||
|
Loading…
Reference in New Issue
Block a user