Subject: [PATCH v3 00/10] Platform compatibility fixes

From: Patrick Steinhardt <[email-masked]>
Date: Wed, 16 Oct 2024 10:12:48 +0200

Hi,

this is the third version of this series that fixes various different
issues on more or less esoteric platforms.

There's only a single change compared to v2, namely that I restore the
`!MINGW` prerequisite in t4201. I've been a bit overeager to convert it
to use `ICONV` as that platform is seemingly still broken here.

I've kicked off another pipeline at GitHub [1] while the GitLab CI
support for Windows hasn't yet landed to verify that things work as
expected now. Tests pass now.

Thanks!

[1]: https://github.com/git/git/pull/1815

Patrick

Patrick Steinhardt (10):
  t/test-lib: fix quoting of TEST_RESULTS_SAN_FILE
  t/test-lib: wire up NO_ICONV prerequisite
  t/lib-gitweb: test against the build version of gitweb
  t/lib-gpg: fix setup of GNUPGHOME in MinGW
  t1401: make invocation of tar(1) work with Win32-provided one
  t3404: work around platform-specific behaviour on macOS 10.15
  t5500, t5601: skip tests which exercise paths with '[::1]' on Cygwin
  t7300: work around platform-specific behaviour with long paths on
    MinGW
  builtin/credential-cache: fix missing parameter for stub function
  http: fix build error on FreeBSD

 Makefile                                     |   1 +
 builtin/credential-cache.c                   |   3 +-
 contrib/buildsystems/CMakeLists.txt          |   6 ++
 http.c                                       |  10 +-
 t/lib-gitweb.sh                              |   4 +-
 t/lib-gpg.sh                                 |   2 +-
 t/t0028-working-tree-encoding.sh             |   6 ++
 t/t1401-symbolic-ref.sh                      |   2 +-
 t/t2082-parallel-checkout-attributes.sh      |   2 +-
 t/t3404-rebase-interactive.sh                |  26 +++--
 t/t3434-rebase-i18n.sh                       |   6 ++
 t/t3900-i18n-commit.sh                       |   6 ++
 t/t3901-i18n-patch.sh                        |   6 ++
 t/t4041-diff-submodule-option.sh             |  16 ++-
 t/t4059-diff-submodule-not-initialized.sh    |  16 ++-
 t/t4060-diff-submodule-option-diff-format.sh |  17 ++--
 t/t4201-shortlog.sh                          |   8 +-
 t/t4205-log-pretty-formats.sh                | 102 +++++++++++--------
 t/t4210-log-i18n.sh                          |   6 ++
 t/t4254-am-corrupt.sh                        |   6 ++
 t/t5100-mailinfo.sh                          |  14 ++-
 t/t5500-fetch-pack.sh                        |  14 ++-
 t/t5550-http-fetch-dumb.sh                   |   4 +-
 t/t5601-clone.sh                             |  11 +-
 t/t6006-rev-list-format.sh                   |  54 ++++++----
 t/t7102-reset.sh                             |  40 +++++---
 t/t7300-clean.sh                             |   2 +-
 t/t8005-blame-i18n.sh                        |   6 ++
 t/t9300-fast-import.sh                       |   2 +-
 t/t9350-fast-export.sh                       |  10 +-
 t/test-lib.sh                                |   3 +-
 31 files changed, 274 insertions(+), 137 deletions(-)

Range-diff against v2:
 1:  a514f5d14a7 =  1:  a514f5d14a7 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILE
 2:  f6a8582c34a !  2:  c046e5f03bf t/test-lib: wire up NO_ICONV prerequisite
    @@ Commit message
         assess whether the failure is expected or not. Most of the tests do
         smell like the expected kind of failure though.
     
    -    Further note that there are several "!MINGW" conditions in t4201, and
    -    all of these fail due to iconv-related errors. This is quite likely a
    -    leftover from times before dce7d29551 (msvc: support building Git using
    -    MS Visual C++, 2019-06-25), which switched Windows-based builds over
    -    from "NO_ICONV=YesPlease" to "NEEDS_LIBICONV=YesPlease". Consequently,
    -    adapt those tests to also use the new ICONV prerequisite.
    -
         Signed-off-by: Patrick Steinhardt <[email-masked]>
     
      ## Makefile ##
    @@ t/t4201-shortlog.sh: test_expect_success 'output from user-defined format is re-
      '
      
     -test_expect_success !MINGW 'shortlog wrapping' '
    -+test_expect_success ICONV 'shortlog wrapping' '
    ++test_expect_success !MINGW,ICONV 'shortlog wrapping' '
      	cat >expect <<\EOF &&
      A U Thor (5):
            Test
    @@ t/t4201-shortlog.sh: EOF
      '
      
     -test_expect_success !MINGW 'shortlog from non-git directory' '
    -+test_expect_success ICONV 'shortlog from non-git directory' '
    ++test_expect_success !MINGW,ICONV 'shortlog from non-git directory' '
      	git log --no-expand-tabs HEAD >log &&
      	GIT_DIR=non-existing git shortlog -w <log >out &&
      	test_cmp expect out
      '
      
     -test_expect_success !MINGW 'shortlog can read --format=raw output' '
    -+test_expect_success ICONV 'shortlog can read --format=raw output' '
    ++test_expect_success !MINGW,ICONV 'shortlog can read --format=raw output' '
      	git log --format=raw HEAD >log &&
      	GIT_DIR=non-existing git shortlog -w <log >out &&
      	test_cmp expect out
    @@ t/t4201-shortlog.sh: $DSCHO (2):
      EOF
      
     -test_expect_success !MINGW 'shortlog encoding' '
    -+test_expect_success ICONV 'shortlog encoding' '
    ++test_expect_success !MINGW,ICONV 'shortlog encoding' '
      	git reset --hard "$commit" &&
      	git config --unset i18n.commitencoding &&
      	echo 2 > a1 &&
 3:  2e2d208ef1b =  3:  52d0b252a1c t/lib-gitweb: test against the build version of gitweb
 4:  cc94f6fa648 =  4:  89957caf6ad t/lib-gpg: fix setup of GNUPGHOME in MinGW
 5:  58691dd652b =  5:  df2fb1b9607 t1401: make invocation of tar(1) work with Win32-provided one
 6:  1daadd82766 =  6:  29fffa5d86b t3404: work around platform-specific behaviour on macOS 10.15
 7:  374f47bf3de =  7:  de4c0c786bd t5500, t5601: skip tests which exercise paths with '[::1]' on Cygwin
 8:  13c06a8129b =  8:  ee67336621c t7300: work around platform-specific behaviour with long paths on MinGW
 9:  5fd78b6d535 =  9:  aaa6b5a175d builtin/credential-cache: fix missing parameter for stub function
10:  9963dc73988 = 10:  c22a94bab41 http: fix build error on FreeBSD
-- 
2.47.0.72.gef8ce8f3d4.dirty