Message ID | patch-1.1-353c384d2b1-20220615T103609Z-avarab@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 7596fe952d92f06375b1ef9fcde1b03c97d23983 |
Headers | show |
Series | For v2.37.0: fix tests breaking with NO_CURL=Y | expand |
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes: > The existing "CURL" prerequisite is only used in one place, and we > should probably name it "CURL_PROGRAM", True. It probably wants to become a lazy prerequisite defined only in that program. > then rename "LIBCURL" to > "CURL" as a follow-up, but for now (pre-v2.37.0) let's aim for the > most minimal fix possible. OK. > Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> > --- > t/lib-httpd.sh | 2 +- > t/t5516-fetch-push.sh | 4 ++-- > t/t5601-clone.sh | 4 ++-- > t/test-lib.sh | 1 + > 4 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh > index 782891908d7..1f6b9b08d1d 100644 > --- a/t/lib-httpd.sh > +++ b/t/lib-httpd.sh > @@ -29,7 +29,7 @@ > # Copyright (c) 2008 Clemens Buchacher <drizzd@aon.at> > # > > -if test -n "$NO_CURL" > +if ! test_have_prereq LIBCURL > then > skip_all='skipping test, git built without http support' > test_done This is not strictly needed in "the most minimal fix possible", is it? Just checking. > diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh > index dedca106a7a..c1220b2ed35 100755 > --- a/t/t5516-fetch-push.sh > +++ b/t/t5516-fetch-push.sh > @@ -1834,7 +1834,7 @@ test_expect_success 'refuse to push a hidden ref, and make sure do not pollute t > test_dir_is_empty testrepo/.git/objects/pack > ' > > -test_expect_success 'fetch warns or fails when using username:password' ' > +test_expect_success LIBCURL 'fetch warns or fails when using username:password' ' This _is_ needed. > -test_expect_success 'push warns or fails when using username:password' ' > +test_expect_success LIBCURL 'push warns or fails when using username:password' ' So is this. > -test_expect_success 'clone warns or fails when using username:password' ' > +test_expect_success LIBCURL 'clone warns or fails when using username:password' ' And this too. > -test_expect_success 'clone does not detect username:password when it is https://username@domain:port/' ' > +test_expect_success LIBCURL 'clone does not detect username:password when it is https://username@domain:port/' ' And this too. > diff --git a/t/test-lib.sh b/t/test-lib.sh > index 736c6447ecf..02bc88c72b4 100644 > --- a/t/test-lib.sh > +++ b/t/test-lib.sh > @@ -1572,6 +1572,7 @@ esac > test_set_prereq REFFILES > > ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1 > +test -z "$NO_CURL" && test_set_prereq LIBCURL And this, of course. > test -z "$NO_PERL" && test_set_prereq PERL > test -z "$NO_PTHREADS" && test_set_prereq PTHREADS > test -z "$NO_PYTHON" && test_set_prereq PYTHON
On Wed, Jun 15 2022, Junio C Hamano wrote: > Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes: > >> The existing "CURL" prerequisite is only used in one place, and we >> should probably name it "CURL_PROGRAM", > > True. It probably wants to become a lazy prerequisite defined only > in that program. Yes, I have that fix, but left it out for the "for v2.37.0" ... >> then rename "LIBCURL" to >> "CURL" as a follow-up, but for now (pre-v2.37.0) let's aim for the >> most minimal fix possible. > > OK. > >> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> >> --- >> t/lib-httpd.sh | 2 +- >> t/t5516-fetch-push.sh | 4 ++-- >> t/t5601-clone.sh | 4 ++-- >> t/test-lib.sh | 1 + >> 4 files changed, 6 insertions(+), 5 deletions(-) >> >> diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh >> index 782891908d7..1f6b9b08d1d 100644 >> --- a/t/lib-httpd.sh >> +++ b/t/lib-httpd.sh >> @@ -29,7 +29,7 @@ >> # Copyright (c) 2008 Clemens Buchacher <drizzd@aon.at> >> # >> >> -if test -n "$NO_CURL" >> +if ! test_have_prereq LIBCURL >> then >> skip_all='skipping test, git built without http support' >> test_done > > This is not strictly needed in "the most minimal fix possible", is > it? Just checking. I figured if I was adding a $NO_CURL prereq I might as well change the only existing use of $NO_CURL to use it, which also assures the reader that our test suite is getting this from somewhere already. But I'll drop this in a re-roll.
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes: >>> -if test -n "$NO_CURL" >>> +if ! test_have_prereq LIBCURL >>> then >>> skip_all='skipping test, git built without http support' >>> test_done >> >> This is not strictly needed in "the most minimal fix possible", is >> it? Just checking. > > I figured if I was adding a $NO_CURL prereq I might as well change the > only existing use of $NO_CURL to use it, which also assures the reader > that our test suite is getting this from somewhere already. > > But I'll drop this in a re-roll. No need. It already is at the tip of 'master' applied directly.
diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh index 782891908d7..1f6b9b08d1d 100644 --- a/t/lib-httpd.sh +++ b/t/lib-httpd.sh @@ -29,7 +29,7 @@ # Copyright (c) 2008 Clemens Buchacher <drizzd@aon.at> # -if test -n "$NO_CURL" +if ! test_have_prereq LIBCURL then skip_all='skipping test, git built without http support' test_done diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh index dedca106a7a..c1220b2ed35 100755 --- a/t/t5516-fetch-push.sh +++ b/t/t5516-fetch-push.sh @@ -1834,7 +1834,7 @@ test_expect_success 'refuse to push a hidden ref, and make sure do not pollute t test_dir_is_empty testrepo/.git/objects/pack ' -test_expect_success 'fetch warns or fails when using username:password' ' +test_expect_success LIBCURL 'fetch warns or fails when using username:password' ' message="URL '\''https://username:<redacted>@localhost/'\'' uses plaintext credentials" && test_must_fail git -c fetch.credentialsInUrl=allow fetch https://username:password@localhost 2>err && ! grep "$message" err && @@ -1853,7 +1853,7 @@ test_expect_success 'fetch warns or fails when using username:password' ' ' -test_expect_success 'push warns or fails when using username:password' ' +test_expect_success LIBCURL 'push warns or fails when using username:password' ' message="URL '\''https://username:<redacted>@localhost/'\'' uses plaintext credentials" && test_must_fail git -c fetch.credentialsInUrl=allow push https://username:password@localhost 2>err && ! grep "$message" err && diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh index d2f046b4b92..eeed233362d 100755 --- a/t/t5601-clone.sh +++ b/t/t5601-clone.sh @@ -71,7 +71,7 @@ test_expect_success 'clone respects GIT_WORK_TREE' ' ' -test_expect_success 'clone warns or fails when using username:password' ' +test_expect_success LIBCURL 'clone warns or fails when using username:password' ' message="URL '\''https://username:<redacted>@localhost/'\'' uses plaintext credentials" && test_must_fail git -c fetch.credentialsInUrl=allow clone https://username:password@localhost attempt1 2>err && ! grep "$message" err && @@ -89,7 +89,7 @@ test_expect_success 'clone warns or fails when using username:password' ' test_line_count = 1 warnings ' -test_expect_success 'clone does not detect username:password when it is https://username@domain:port/' ' +test_expect_success LIBCURL 'clone does not detect username:password when it is https://username@domain:port/' ' test_must_fail git -c fetch.credentialsInUrl=warn clone https://username@localhost:8080 attempt3 2>err && ! grep "uses plaintext credentials" err ' diff --git a/t/test-lib.sh b/t/test-lib.sh index 736c6447ecf..02bc88c72b4 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -1572,6 +1572,7 @@ esac test_set_prereq REFFILES ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1 +test -z "$NO_CURL" && test_set_prereq LIBCURL test -z "$NO_PERL" && test_set_prereq PERL test -z "$NO_PTHREADS" && test_set_prereq PTHREADS test -z "$NO_PYTHON" && test_set_prereq PYTHON
Add and use a LIBCURL prerequisite for tests added in 6dcbdc0d661 (remote: create fetch.credentialsInUrl config, 2022-06-06). These tests would get as far as emitting a couple of the warnings we were testing for, but would then die as we had no "git-remote-https" program compiled. It would be more consistent with other prerequisites (e.g. PERL for NO_PERL) to name this "CURL", but since e9184b0789a (t5561: skip tests if curl is not available, 2018-04-03) we've had that prerequisite defined for checking of we have the curl(1) program. The existing "CURL" prerequisite is only used in one place, and we should probably name it "CURL_PROGRAM", then rename "LIBCURL" to "CURL" as a follow-up, but for now (pre-v2.37.0) let's aim for the most minimal fix possible. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- t/lib-httpd.sh | 2 +- t/t5516-fetch-push.sh | 4 ++-- t/t5601-clone.sh | 4 ++-- t/test-lib.sh | 1 + 4 files changed, 6 insertions(+), 5 deletions(-)