Re: [PATCH v3 2/2] tests(mingw): avoid very slow `mingw_test_cmp`
- From
René Scharfe <l.s.r@web.de>
- Date
- Nov 19, 2022, 17:50 UTC
- Message-ID
- <f5d6c063-2fc4-4355-57e1-056eac1fb4a2@web.de>
- In-Reply-To
- <65ff24be-4392-f236-5500-ce0c0d4d42ca@kdbg.org>
Am 19.11.2022 um 09:18 schrieb Johannes Sixt:
Show 9 quoted lines
> > The reason that mingw_test_cmp exists is not that Git isn't ported > correctly, or that tests aren't ported correctly. The reason is that > tests assume Unix LF line endings everywhere, but there are some tools > that are outside our control that randomly -- to the layman's eye -- > produce CRLF line endings even when their input has LF style. > > For example, when we post-process Git output with `sed`, the result > suddenly has CRLF line endings instead of LF that the input had.
Actually I see the opposite behavior -- sed eats CRs on an up-to-date Git for Windows SDK:
$ uname -s MINGW64_NT-10.0-22621
$ printf 'a\r\n' | hexdump.exe -C 00000000 61 0d 0a |a..| 00000003
$ printf 'a\r\n' | sed '' | hexdump.exe -C 00000000 61 0a |a.| 00000002
And with the following patch on top of eea7033409 (The twelfth batch, 2022-11-14) the test suite passes for me -- just one case of grep stealing CRs seems to need adjustment to make mingw_test_cmp unnecessary:
t/t3920-crlf-messages.sh | 2 +- t/test-lib.sh | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/t/t3920-crlf-messages.sh b/t/t3920-crlf-messages.sh index 4c661d4d54..353b1a550e 100755 --- a/t/t3920-crlf-messages.sh +++ b/t/t3920-crlf-messages.sh @@ -12,7 +12,7 @@ create_crlf_ref () { cat >.crlf-orig-$branch.txt && cat .crlf-orig-$branch.txt | append_cr >.crlf-message-$branch.txt && grep 'Subject' .crlf-orig-$branch.txt | tr '\n' ' ' | sed 's/[ ]*$//' | tr -d '\n' >.crlf-subject-$branch.txt && - grep 'Body' .crlf-message-$branch.txt >.crlf-body-$branch.txt || true && + grep 'Body' .crlf-orig-$branch.txt | append_cr >.crlf-body-$branch.txt || true && LIB_CRLF_BRANCHES="${LIB_CRLF_BRANCHES} ${branch}" && test_tick && hash=$(git commit-tree HEAD^{tree} -p HEAD -F .crlf-message-${branch}.txt) && diff --git a/t/test-lib.sh b/t/test-lib.sh index 6db377f68b..af5ec357e5 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -1721,7 +1721,6 @@ case $uname_s in test_set_prereq SED_STRIPS_CR test_set_prereq GREP_STRIPS_CR test_set_prereq WINDOWS - GIT_TEST_CMP=mingw_test_cmp ;; *CYGWIN*) test_set_prereq POSIXPERM