Subject: Re: t6023 broken under Mac OS

From: Torsten Bögershausen <[email-masked]>
Date: Fri, 1 Jan 2016 18:49:47 +0100

On 2016-01-01 18.14, Ramsay Jones wrote:
> 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
Yes, this works.

> 
> [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?
This is may attempt (against pu)

diff --git a/t/t6023-merge-file.sh b/t/t6023-merge-file.sh
index 68b306f..b1f8e41 100755
--- a/t/t6023-merge-file.sh
+++ b/t/t6023-merge-file.sh
@@ -350,7 +350,13 @@ 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 $(tr "\015" Q <output.txt | sed -n "/\.txtQ$/p" | wc -l) -eq 3
+       tr "\015" Q <output.txt | sed -n "/\.txtQ$/p" >out &&
+       cat >exp <<\EOF  &&
+<<<<<<< nolf-diff1.txtQ
+||||||| nolf-orig.txtQ
+>>>>>>> nolf-diff2.txtQ
+EOF
+        test_cmp exp out
 '