diff options
author | Joel E. Denny <jdenny.ornl@gmail.com> | 2019-10-12 11:58:30 +0000 |
---|---|---|
committer | Joel E. Denny <jdenny.ornl@gmail.com> | 2019-10-12 11:58:30 +0000 |
commit | 0f80927316c7b12e5c170adec26608dda449497c (patch) | |
tree | 38de032c157984c81b5103844a961686266d0fcc /llvm/utils/lit/tests | |
parent | 92a8294f9eda2d9b3f7718cba68269a4fc8eea10 (diff) | |
download | bcm5719-llvm-0f80927316c7b12e5c170adec26608dda449497c.tar.gz bcm5719-llvm-0f80927316c7b12e5c170adec26608dda449497c.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 with
Python's universal newlines support activated, causing `\r` to be
dropped. 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: 374652
Diffstat (limited to 'llvm/utils/lit/tests')
-rw-r--r-- | llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.dos | 3 | ||||
-rw-r--r-- | llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.unix | 3 | ||||
-rw-r--r-- | llvm/utils/lit/tests/Inputs/shtest-shell/diff-strip-trailing-cr.txt | 10 | ||||
-rw-r--r-- | llvm/utils/lit/tests/max-failures.py | 2 | ||||
-rw-r--r-- | llvm/utils/lit/tests/shtest-shell.py | 57 |
5 files changed, 72 insertions, 3 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 diff --git a/llvm/utils/lit/tests/max-failures.py b/llvm/utils/lit/tests/max-failures.py index 3b85ae18611..6ad37533692 100644 --- a/llvm/utils/lit/tests/max-failures.py +++ b/llvm/utils/lit/tests/max-failures.py @@ -8,7 +8,7 @@ # # END. -# CHECK: Failing Tests (31) +# CHECK: Failing Tests (32) # CHECK: Failing Tests (1) # CHECK: Failing Tests (2) # CHECK: error: argument --max-failures: requires positive integer, but found '0' diff --git a/llvm/utils/lit/tests/shtest-shell.py b/llvm/utils/lit/tests/shtest-shell.py index c7e05d6bc42..adbe4dc56a1 100644 --- a/llvm/utils/lit/tests/shtest-shell.py +++ b/llvm/utils/lit/tests/shtest-shell.py @@ -4,7 +4,7 @@ # FIXME: Temporarily dump test output so we can debug failing tests on # buildbots. # RUN: cat %t.out -# RUN: FileCheck --input-file %t.out %s +# RUN: FileCheck --dump-input=fail --color -vv --input-file %t.out %s # # END. @@ -332,6 +332,59 @@ # CHECK: PASS: shtest-shell :: diff-r.txt +# CHECK: FAIL: shtest-shell :: diff-strip-trailing-cr.txt + +# CHECK: *** TEST 'shtest-shell :: diff-strip-trailing-cr.txt' FAILED *** + +# CHECK: $ "diff" "-u" "diff-in.dos" "diff-in.unix" +# CHECK: # command output: +# CHECK: @@ +# CHECK-NEXT: -In this file, the +# CHECK-NEXT: -sequence "\r\n" +# CHECK-NEXT: -terminates lines. +# CHECK-NEXT: +In this file, the +# CHECK-NEXT: +sequence "\n" +# CHECK-NEXT: +terminates lines. +# CHECK: error: command failed with exit status: 1 +# CHECK: $ "true" + +# CHECK: $ "diff" "-u" "diff-in.unix" "diff-in.dos" +# CHECK: # command output: +# CHECK: @@ +# CHECK-NEXT: -In this file, the +# CHECK-NEXT: -sequence "\n" +# CHECK-NEXT: -terminates lines. +# CHECK-NEXT: +In this file, the +# CHECK-NEXT: +sequence "\r\n" +# CHECK-NEXT: +terminates lines. +# CHECK: error: command failed with exit status: 1 +# CHECK: $ "true" + +# CHECK: $ "diff" "-u" "--strip-trailing-cr" "diff-in.dos" "diff-in.unix" +# CHECK: # command output: +# CHECK: @@ +# CHECK-NEXT: In this file, the +# CHECK-NEXT: -sequence "\r\n" +# CHECK-NEXT: +sequence "\n" +# CHECK-NEXT: terminates lines. +# CHECK: error: command failed with exit status: 1 +# CHECK: $ "true" + +# CHECK: $ "diff" "-u" "--strip-trailing-cr" "diff-in.unix" "diff-in.dos" +# CHECK: # command output: +# CHECK: @@ +# CHECK-NEXT: In this file, the +# CHECK-NEXT: -sequence "\n" +# CHECK-NEXT: +sequence "\r\n" +# CHECK-NEXT: terminates lines. +# CHECK: error: command failed with exit status: 1 +# CHECK: $ "true" + +# CHECK: $ "false" + +# CHECK: *** + + # CHECK: FAIL: shtest-shell :: diff-unified.txt # CHECK: *** TEST 'shtest-shell :: diff-unified.txt' FAILED *** @@ -486,4 +539,4 @@ # CHECK: PASS: shtest-shell :: sequencing-0.txt # CHECK: XFAIL: shtest-shell :: sequencing-1.txt # CHECK: PASS: shtest-shell :: valid-shell.txt -# CHECK: Failing Tests (31) +# CHECK: Failing Tests (32) |