Hi, this is the second version of my patch series that includes various different platform compatibility fixes. Changes compared to v1: - Provide a more in-depth explanation of the gitweb fix. - Fix up a stale comment in "lib-gitweb.sh". - Add a missing signoff. Thanks! 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 v1: 1: 601670912ee = 1: a514f5d14a7 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILE 2: f1d74c46aa2 = 2: f6a8582c34a t/test-lib: wire up NO_ICONV prerequisite 3: eda73d81139 ! 3: 2e2d208ef1b t/lib-gitweb: test against the build version of gitweb @@ Commit message t/lib-gitweb: test against the build version of gitweb When testing gitweb we set up the CGI script as "gitweb.perl", which is - the source file of the build target "gitweb.cgi". This works alright as - long as we run in-tree tests. But we're about to make out-of-tree tests - a reality, and there things will break because "gitweb.perl" will not be - found in the build directory. + the source file of the build target "gitweb.cgi". This file doesn't have + a patched shebang and still contains `++REPLACEMENT++` markers, but + things generally work because we replace the configuration with our own + test configuration. - Fix this by using "gitweb.cgi" instead. + But this only works as long as "$GIT_BUILD_DIR" actually points to the + source tree, because "gitweb.cgi" and "gitweb.perl" happen to sit next + to each other. This is not the case though once you have out-of-tree + builds like with CMake, where the source and built versions live in + different directories. Consequently, "$GIT_BUILD_DIR/gitweb/gitweb.perl" + won't exist there. + + While we could ask build systems with out-of-tree builds to instead set + up GITWEB_TEST_INSTALLED, which allows us to override the location of + the script, it goes against the spirit of this environment variable. We + _don't_ want to test against an installed version, we want to use the + version we have just built. + + Fix this by using "gitweb.cgi" instead. This means that you cannot run + test scripts without building that file, but in general we do expect + developers to build stuff before they test it anyway. Signed-off-by: Patrick Steinhardt <ps@xxxxxx> ## t/lib-gitweb.sh ## @@ t/lib-gitweb.sh: EOF + test -f "$SCRIPT_NAME" || error "Cannot find gitweb at $GITWEB_TEST_INSTALLED." say "# Testing $SCRIPT_NAME" - else # normal case, use source version of gitweb +- else # normal case, use source version of gitweb - SCRIPT_NAME="$GIT_BUILD_DIR/gitweb/gitweb.perl" ++ else # normal case, use built version of gitweb + SCRIPT_NAME="$GIT_BUILD_DIR/gitweb/gitweb.cgi" fi export SCRIPT_NAME 4: f5700647839 = 4: cc94f6fa648 t/lib-gpg: fix setup of GNUPGHOME in MinGW 5: d082cd92af3 ! 5: 58691dd652b t1401: make invocation of tar(1) work with Win32-provided one @@ Commit message Drop the trailing slash. Other tests that use tar(1) work alright, this is the only instance where it has been failing. + Signed-off-by: Patrick Steinhardt <ps@xxxxxx> + ## t/t1401-symbolic-ref.sh ## @@ t/t1401-symbolic-ref.sh: reset_to_sane() { test_expect_success 'setup' ' 6: a82a6b3df70 = 6: 1daadd82766 t3404: work around platform-specific behaviour on macOS 10.15 7: e1b9617f943 = 7: 374f47bf3de t5500, t5601: skip tests which exercise paths with '[::1]' on Cygwin 8: b94fd876adb = 8: 13c06a8129b t7300: work around platform-specific behaviour with long paths on MinGW 9: 8cce69e5ba6 = 9: 5fd78b6d535 builtin/credential-cache: fix missing parameter for stub function 10: deb30e12a58 = 10: 9963dc73988 http: fix build error on FreeBSD base-commit: ef8ce8f3d4344fd3af049c17eeba5cd20d98b69f -- 2.47.0.72.gef8ce8f3d4.dirty