On 01/01/16 17:49, Torsten Bögershausen wrote:
> 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
>  '
> 

This still doesn't test the '======= conflict marker', how about
something like this (again not tested on Mac - is the re in the
sed invocation OK on the Mac?):

diff --git a/t/t6023-merge-file.sh b/t/t6023-merge-file.sh
index 245359a..0697b22 100755
--- a/t/t6023-merge-file.sh
+++ b/t/t6023-merge-file.sh
@@ -350,7 +350,14 @@ 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
+       tr "\015" Q <output.txt | sed -n "/^[<=>|].*Q$/p" >out.txt &&
+       cat >expect.txt <<-\EOF &&
+       <<<<<<< nolf-diff1.txtQ
+       ||||||| nolf-orig.txtQ
+       =======Q
+       >>>>>>> nolf-diff2.txtQ
+       EOF
+       test_cmp expect.txt out.txt
 '
 
 test_done

ATB,
Ramsay Jones


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to