summaryrefslogtreecommitdiffstats
path: root/llvm/utils/lit/tests
diff options
context:
space:
mode:
authorJoel E. Denny <jdenny.ornl@gmail.com>2019-10-12 11:58:30 +0000
committerJoel E. Denny <jdenny.ornl@gmail.com>2019-10-12 11:58:30 +0000
commit0f80927316c7b12e5c170adec26608dda449497c (patch)
tree38de032c157984c81b5103844a961686266d0fcc /llvm/utils/lit/tests
parent92a8294f9eda2d9b3f7718cba68269a4fc8eea10 (diff)
downloadbcm5719-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.dos3
-rw-r--r--llvm/utils/lit/tests/Inputs/shtest-shell/diff-in.unix3
-rw-r--r--llvm/utils/lit/tests/Inputs/shtest-shell/diff-strip-trailing-cr.txt10
-rw-r--r--llvm/utils/lit/tests/max-failures.py2
-rw-r--r--llvm/utils/lit/tests/shtest-shell.py57
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)
OpenPOWER on IntegriCloud