
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
11 lines
358 B
Plaintext
11 lines
358 B
Plaintext
# 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
|