From 6736c99287bb2d9c335e1a1a5440ef814be8fba4 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Tue, 24 Sep 2024 08:47:39 +0200 Subject: [PATCH] ci: work around a problem with HTTP/2 vs libcurl v8.10.0 As reported in https://lore.kernel.org/git/ZuPKvYP9ZZ2mhb4m@pks.im/, libcurl v8.10.0 had a regression that was picked up by Git's t5559.30 "large fetch-pack requests can be sent using chunked encoding". This bug was fixed in libcurl v8.10.1. Sadly, the macos-13 runner image was updated in the brief window between these two libcurl versions, breaking each and every CI build, as reported at https://github.com/git-for-windows/git/issues/5159. This would usually not matter, we would just ignore the failing CI builds until the macos-13 runner image is rebuilt in a couple of days, and then the CI builds would succeed again. However. As has become the custom, a surprise Git version was released, and now that Git for Windows wants to follow suit, since Git for Windows has this custom of trying to never release a version with a failing CI build, we _must_ work around it. This patch implements this work-around, basically for the sake of Git for Windows v2.46.2's CI build. Signed-off-by: Johannes Schindelin --- t/t5551-http-fetch-smart.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/t/t5551-http-fetch-smart.sh b/t/t5551-http-fetch-smart.sh index 2ce88535a60e69..03662b9ade8fab 100755 --- a/t/t5551-http-fetch-smart.sh +++ b/t/t5551-http-fetch-smart.sh @@ -404,7 +404,15 @@ test_expect_success CMDLINE_LIMIT \ ) ' -test_expect_success 'large fetch-pack requests can be sent using chunked encoding' ' +# This is a temporary work-around for libcurl v8.10.0 on the macos-* runners; +# see https://github.com/git-for-windows/git/issues/5159 for full details +test_lazy_prereq UNBROKEN_HTTP2 ' + test "$HTTP_PROTO" = HTTP/2 && + test -z "$(brew info -q curl 2>/dev/null | + sed -n "/^Installed/{N;s/.*8\\.10\\.0.*/BROKEN HTTP2/p;}")" +' + +test_expect_success UNBROKEN_HTTP2 'large fetch-pack requests can be sent using chunked encoding' ' GIT_TRACE_CURL=true git -c http.postbuffer=65536 \ clone --bare "$HTTPD_URL/smart/repo.git" split.git 2>err && {