[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