diff options
author | Joel E. Denny <jdenny.ornl@gmail.com> | 2019-10-16 17:21:24 +0000 |
---|---|---|
committer | Joel E. Denny <jdenny.ornl@gmail.com> | 2019-10-16 17:21:24 +0000 |
commit | f095b8c425ecf832d0a5ccdbaa02c27153f80a0c (patch) | |
tree | 69651c319a801cdab8ea500840dfb744ebdfa48b /llvm/utils/lit/tests/Inputs | |
parent | f89cf21337b07e0f6fc3704eadaddc05aa845831 (diff) | |
download | bcm5719-llvm-f095b8c425ecf832d0a5ccdbaa02c27153f80a0c.tar.gz bcm5719-llvm-f095b8c425ecf832d0a5ccdbaa02c27153f80a0c.zip |
[lit] Clean up internal diff's encoding handling
As suggested by rnk at D67643#1673043, instead of reading files
multiple times until an appropriate encoding is found, read them once
as binary, and then try to decode what was read.
For Python >= 3.5, don't fail when attempting to decode the
`diff_bytes` output in order to print it.
Avoid failures for Python 2.7 used on some Windows bots by
transforming diff output with `lit.util.to_string` before writing it
to stdout.
Finally, add some tests for encoding handling.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D68664
llvm-svn: 375018
Diffstat (limited to 'llvm/utils/lit/tests/Inputs')
-rw-r--r-- | llvm/utils/lit/tests/Inputs/shtest-shell/diff-encodings.txt | 9 | ||||
-rw-r--r-- | llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.bin | bin | 0 -> 26 bytes | |||
-rw-r--r-- | llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.utf16 | bin | 0 -> 24 bytes | |||
-rw-r--r-- | llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.utf8 | 3 |
4 files changed, 12 insertions, 0 deletions
diff --git a/llvm/utils/lit/tests/Inputs/shtest-shell/diff-encodings.txt b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-encodings.txt new file mode 100644 index 00000000000..d8b9718a099 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-encodings.txt @@ -0,0 +1,9 @@ +# Check that diff falls back to binary mode if it cannot decode a file. + +# RUN: diff -u diff-in.bin diff-in.bin +# RUN: diff -u diff-in.utf16 diff-in.bin && false || true +# RUN: diff -u diff-in.utf8 diff-in.bin && false || true +# RUN: diff -u diff-in.bin diff-in.utf8 && false || true + +# Fail so lit will print output. +# RUN: false diff --git a/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.bin b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.bin Binary files differnew file mode 100644 index 00000000000..06b800b707c --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.bin diff --git a/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.utf16 b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.utf16 Binary files differnew file mode 100644 index 00000000000..d7d9feefa7d --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.utf16 diff --git a/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.utf8 b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.utf8 new file mode 100644 index 00000000000..86e041dad66 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.utf8 @@ -0,0 +1,3 @@ +foo +bar +baz |