diff options
| author | Joel E. Denny <jdenny.ornl@gmail.com> | 2019-10-16 17:21:57 +0000 |
|---|---|---|
| committer | Joel E. Denny <jdenny.ornl@gmail.com> | 2019-10-16 17:21:57 +0000 |
| commit | 2622419c78c204105bd04d5f0b55eadbc26850ad (patch) | |
| tree | 0c300b62a8a4bf1d77a3fd8f64dfcfa8d8332ef0 /llvm/utils/lit/tests/Inputs/shtest-shell | |
| parent | e2163f96abb5905938115f8935702b1defe4f015 (diff) | |
| download | bcm5719-llvm-2622419c78c204105bd04d5f0b55eadbc26850ad.tar.gz bcm5719-llvm-2622419c78c204105bd04d5f0b55eadbc26850ad.zip | |
[lit] Fix internal diff's --strip-trailing-cr and use it
Using GNU diff, `--strip-trailing-cr` removes a `\r` appearing before
a `\n` at the end of a line. Without this patch, lit's internal diff
only removes `\r` if it appears as the last character. That seems
useless. This patch fixes that.
This patch also adds `--strip-trailing-cr` to some tests that fail on
Windows bots when D68664 is applied. Based on what I see in the bot
logs, I think the following is happening. In each test there, lit
diff is comparing a file with `\r\n` line endings to a file with `\n`
line endings. Without D68664, lit diff reads those files in text
mode, which in Windows causes `\r\n` to be replaced with `\n`.
However, with D68664, lit diff reads the files in binary mode instead
and thus reports that every line is different, just as GNU diff does
(at least under Ubuntu). Adding `--strip-trailing-cr` to those tests
restores the previous behavior while permitting the behavior of lit
diff to be more like GNU diff.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D68839
llvm-svn: 375020
Diffstat (limited to 'llvm/utils/lit/tests/Inputs/shtest-shell')
3 files changed, 16 insertions, 0 deletions
diff --git a/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.dos b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.dos new file mode 100644 index 00000000000..7a0560654c5 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.dos @@ -0,0 +1,3 @@ +In this file, the
+sequence "\r\n"
+terminates lines.
diff --git a/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.unix b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.unix new file mode 100644 index 00000000000..58208a3ae76 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.unix @@ -0,0 +1,3 @@ +In this file, the +sequence "\n" +terminates lines. diff --git a/llvm/utils/lit/tests/Inputs/shtest-shell/diff-strip-trailing-cr.txt b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-strip-trailing-cr.txt new file mode 100644 index 00000000000..6111a8fbf72 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/shtest-shell/diff-strip-trailing-cr.txt @@ -0,0 +1,10 @@ +# Check behavior of --strip-trailing-cr. + +# RUN: diff -u diff-in.dos diff-in.unix && false || true +# RUN: diff -u diff-in.unix diff-in.dos && false || true + +# RUN: diff -u --strip-trailing-cr diff-in.dos diff-in.unix && false || true +# RUN: diff -u --strip-trailing-cr diff-in.unix diff-in.dos && false || true + +# Fail so lit will print output. +# RUN: false |

