From: Ramsay Jones Date: Fri, 01 Jan 2016 21:14:17 GMT Subject: Re: t6023 broken under Mac OS Message-ID: <5686EC29.3080901@ramsayjones.plus.com> In-Reply-To: <5686BC3B.5080302@web.de> 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 > ' >> >> 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 + tr "\015" Q 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 |].*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