From: Johannes Schindelin Date: Tue, 01 Apr 2025 18:56:41 GMT Subject: Re: [PATCH v3 14/20] t/lib-gpg: refactor `sanitize_pgp()` to not depend on Perl Message-ID: In-Reply-To: <20250327-b4-pks-t-perlless-v3-14-b436de9da1b8@pks.im> Hi Patrick, On Thu, 27 Mar 2025, Patrick Steinhardt wrote: > The `sanitize_pgp()` test helper uses Perl to strip PGP signatures from > stdin. Refactor it to instead use awk(1) so that we drop the > PERL_TEST_HELPERS prerequisite in users of this library. It's my fault that this commit message is no longer correct because I talked you into using `sed` instead... Sorry, Johannes > > Note that we have to add PERL_TEST_HELPERS to a subset of tests in t6300 > now that the test suite doesn't bail out early anymore in case the > prerequisite isn't set. > > Helped-by: Johannes Schindelin > Signed-off-by: Patrick Steinhardt > --- > t/lib-gpg.sh | 6 +----- > t/t6300-for-each-ref.sh | 21 ++++++++++----------- > 2 files changed, 11 insertions(+), 16 deletions(-) > > diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh > index 3845b6ac449..937b876bd05 100644 > --- a/t/lib-gpg.sh > +++ b/t/lib-gpg.sh > @@ -192,9 +192,5 @@ test_lazy_prereq GPGSSH_VERIFYTIME ' > ' > > sanitize_pgp() { > - perl -ne ' > - /^-----END PGP/ and $in_pgp = 0; > - print unless $in_pgp; > - /^-----BEGIN PGP/ and $in_pgp = 1; > - ' > + sed "/^-----BEGIN PGP/,/^-----END PGP/{/^-/p;d;}" > } > diff --git a/t/t6300-for-each-ref.sh b/t/t6300-for-each-ref.sh > index 732a4d3171e..5db7038c417 100755 > --- a/t/t6300-for-each-ref.sh > +++ b/t/t6300-for-each-ref.sh > @@ -10,12 +10,6 @@ GNUPGHOME_NOT_USED=$GNUPGHOME > . "$TEST_DIRECTORY"/lib-gpg.sh > . "$TEST_DIRECTORY"/lib-terminal.sh > > -if ! test_have_prereq PERL_TEST_HELPERS > -then > - skip_all='skipping for-each-ref tests; Perl not available' > - test_done > -fi > - > # Mon Jul 3 23:18:43 2006 +0000 > datestamp=1151968723 > setdate_and_increment () { > @@ -1215,7 +1209,7 @@ test_expect_success '%(raw) with --tcl must fail' ' > test_must_fail git for-each-ref --format="%(raw)" --tcl > ' > > -test_expect_success '%(raw) with --perl' ' > +test_expect_success PERL_TEST_HELPERS '%(raw) with --perl' ' > git for-each-ref --format="\$name= %(raw); > print \"\$name\"" refs/myblobs/blob1 --perl | perl >actual && > cmp blob1 actual && > @@ -1442,9 +1436,14 @@ test_expect_success 'set up trailers for next test' ' > ' > > test_trailer_option () { > + if test "$#" -eq 3 > + then > + prereq="$1" > + shift > + fi && > title=$1 option=$2 > cat >expect > - test_expect_success "$title" ' > + test_expect_success $prereq "$title" ' > git for-each-ref --format="%($option)" refs/heads/main >actual && > test_cmp expect actual && > git for-each-ref --format="%(contents:$option)" refs/heads/main >actual && > @@ -1452,7 +1451,7 @@ test_trailer_option () { > ' > } > > -test_trailer_option '%(trailers:unfold) unfolds trailers' \ > +test_trailer_option PERL_TEST_HELPERS '%(trailers:unfold) unfolds trailers' \ > 'trailers:unfold' <<-EOF > $(unfold > @@ -1482,13 +1481,13 @@ test_trailer_option '%(trailers:only=no) shows all trailers' \ > > EOF > > -test_trailer_option '%(trailers:only) and %(trailers:unfold) work together' \ > +test_trailer_option PERL_TEST_HELPERS '%(trailers:only) and %(trailers:unfold) work together' \ > 'trailers:only,unfold' <<-EOF > $(grep -v patch.description > EOF > > -test_trailer_option '%(trailers:unfold) and %(trailers:only) work together' \ > +test_trailer_option PERL_TEST_HELPERS '%(trailers:unfold) and %(trailers:only) work together' \ > 'trailers:unfold,only' <<-EOF > $(grep -v patch.description > > -- > 2.49.0.472.ge94155a9ec.dirty > >