Re: t3032 incompatible with Cygwin/Windows
From: Ramsay Jones <hidden>
Date: 2016-06-15 22:58:12
Mark Levedahl wrote:
Subtests 6,7, and 9 of t3032 fail on Cygwin, and I presume will fail on msysgit for similar reasons. Looking at test 6, the expected result is a line ending with \r\n in text.txt. This line is extracted with grep (grep 'justice and holiness' text.txt > actual), with unavoidable result that on Cygwin the line ending is \n. This happens because on Cygwin, the text utils are compiled to open files in text mode meaning than \n and \r\n are both recognized as EOL markers. Thus, even though text.txt is an exact match for what is created on Linux, the test fails because \r\n cannot be distinguished by the available tools. I'm not sure the right way forward. I did confirm that by substituting "q_to_tab" for "q_to_cr" in t3032, the test pass on Cygwin and on Linux. Perhaps t3032 should be so amended to avoid use of a non-portable line ending construct?
This passes for me, on both cygwin and MinGW.
After adding a test_pause to test #6:
$ ./t3032-merge-recursive-options.sh -v
...
expecting success:
q_to_cr <<-\EOF >expected &&
justice and holiness and is the nurse of his age and theQ
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-space-change HEAD^ -- HEAD remote &&
grep "justice and holiness" text.txt >actual &&
test_cmp expected actual &&
test_pause
Merging HEAD with remote
Merging:
0ab7224 Clarify
be82dcf Remove cruft
found 1 common ancestor:
c1e95d9 Initial revision
Auto-merging text.txt
$ xxd expected
0000000: 2020 2020 6a75 7374 6963 6520 616e 6420 justice and
0000010: 686f 6c69 6e65 7373 2061 6e64 2069 7320 holiness and is
0000020: 7468 6520 6e75 7273 6520 6f66 2068 6973 the nurse of his
0000030: 2061 6765 2061 6e64 2074 6865 0d0a age and the..
$ xxd actual
0000000: 2020 2020 6a75 7374 6963 6520 616e 6420 justice and
0000010: 686f 6c69 6e65 7373 2061 6e64 2069 7320 holiness and is
0000020: 7468 6520 6e75 7273 6520 6f66 2068 6973 the nurse of his
0000030: 2061 6765 2061 6e64 2074 6865 0d0a age and the..
$ grep "justice and holiness" text.txt | xxd
0000000: 2020 2020 6a75 7374 6963 6520 616e 6420 justice and
0000010: 686f 6c69 6e65 7373 2061 6e64 2069 7320 holiness and is
0000020: 7468 6520 6e75 7273 6520 6f66 2068 6973 the nurse of his
0000030: 2061 6765 2061 6e64 2074 6865 0d0a age and the..
$ exit
...
# passed all 11 test(s)
1..11
$
ATB,
Ramsay Jones