Subject: Re: t6023 broken under Mac OS

From: Ramsay Jones <[email-masked]>
Date: Fri, 1 Jan 2016 17:14:40 +0000

Hi Torsten,

On 01/01/16 15:36, Torsten Bögershausen wrote:
> The (last) test case
> 'conflict markers contain CRLF when core.eol=crlf'
> 
> does not work as expected under Mac OS: "wc -l" is not portable and the line
> test $(sed -n "/\.txt\r$/p" output.txt | wc -l) = 3
> fails.

Hmm, I have never used a Mac, so I'm just guessing here, but
you could try something like (obviously untested!):

diff --git a/t/t6023-merge-file.sh b/t/t6023-merge-file.sh
index 245359a..68b306f 100755
--- a/t/t6023-merge-file.sh
+++ b/t/t6023-merge-file.sh
@@ -350,7 +350,7 @@ test_expect_success 'conflict at EOF without LF resolved by --union' \
 test_expect_success 'conflict markers contain CRLF when core.eol=crlf' '
 	test_must_fail git -c core.eol=crlf merge-file -p \
 		nolf-diff1.txt nolf-orig.txt nolf-diff2.txt >output.txt &&
-	test $(sed -n "/\.txt\r$/p" output.txt | wc -l) = 3
+	test $(tr "\015" Q <output.txt | sed -n "/\.txtQ$/p" | wc -l) -eq 3
 '
 
 test_done

[The 'wc -l' portability should only be a problem if you rely on the
exact textual form of the output, rather than the integer count.
'wc -l' is used in many many tests ...]

Note that this test is not checking all conflict markers (the
======= marker does not have a filename appended). Should that
be fixed also?

ATB,
Ramsay Jones