t/lib-gpg: refactor `sanitize_pgp()` to not depend on Perl

The `sanitize_pgp()` test helper uses Perl to strip PGP signatures from stdin. Refactor it to instead use sed(1) so that we drop the PERL_TEST_HELPERS prerequisite in users of this library. 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 <Johannes.Schindelin@gmx.de> Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Patrick Steinhardt committed Apr 3, 2025 at 07:06 UTC 3ca6f2058563a371435954fa3782169073823781
2 files changed +11 -16
t/lib-gpg.sh
+1 -5
@@ -192,9 +192,5 @@ test_lazy_prereq GPGSSH_VERIFYTIME '
192 '
193
194 sanitize_pgp() {
195 - perl -ne '
196 - /^-----END PGP/ and $in_pgp = 0;
197 - print unless $in_pgp;
198 - /^-----BEGIN PGP/ and $in_pgp = 1;
199 - '
195 + sed "/^-----BEGIN PGP/,/^-----END PGP/{/^-/p;d;}"
196 }
t/t6300-for-each-ref.sh
+10 -11
@@ -10,12 +10,6 @@ GNUPGHOME_NOT_USED=$GNUPGHOME
10 . "$TEST_DIRECTORY"/lib-gpg.sh
11 . "$TEST_DIRECTORY"/lib-terminal.sh
12
13 -if ! test_have_prereq PERL_TEST_HELPERS
14 -then
15 - skip_all='skipping for-each-ref tests; Perl not available'
16 - test_done
17 -fi
18 -
13 # Mon Jul 3 23:18:43 2006 +0000
14 datestamp=1151968723
15 setdate_and_increment () {
@@ -1215,7 +1209,7 @@ test_expect_success '%(raw) with --tcl must fail' '
1209 test_must_fail git for-each-ref --format="%(raw)" --tcl
1210 '
1211
1218 -test_expect_success '%(raw) with --perl' '
1212 +test_expect_success PERL_TEST_HELPERS '%(raw) with --perl' '
1213 git for-each-ref --format="\$name= %(raw);
1214 print \"\$name\"" refs/myblobs/blob1 --perl | perl >actual &&
1215 cmp blob1 actual &&
@@ -1442,9 +1436,14 @@ test_expect_success 'set up trailers for next test' '
1436 '
1437
1438 test_trailer_option () {
1439 + if test "$#" -eq 3
1440 + then
1441 + prereq="$1"
1442 + shift
1443 + fi &&
1444 title=$1 option=$2
1445 cat >expect
1447 - test_expect_success "$title" '
1446 + test_expect_success $prereq "$title" '
1447 git for-each-ref --format="%($option)" refs/heads/main >actual &&
1448 test_cmp expect actual &&
1449 git for-each-ref --format="%(contents:$option)" refs/heads/main >actual &&
@@ -1452,7 +1451,7 @@ test_trailer_option () {
1451 '
1452 }
1453
1455 -test_trailer_option '%(trailers:unfold) unfolds trailers' \
1454 +test_trailer_option PERL_TEST_HELPERS '%(trailers:unfold) unfolds trailers' \
1455 'trailers:unfold' <<-EOF
1456 $(unfold <trailers)
1457
@@ -1482,13 +1481,13 @@ test_trailer_option '%(trailers:only=no) shows all trailers' \
1481
1482 EOF
1483
1485 -test_trailer_option '%(trailers:only) and %(trailers:unfold) work together' \
1484 +test_trailer_option PERL_TEST_HELPERS '%(trailers:only) and %(trailers:unfold) work together' \
1485 'trailers:only,unfold' <<-EOF
1486 $(grep -v patch.description <trailers | unfold)
1487
1488 EOF
1489
1491 -test_trailer_option '%(trailers:unfold) and %(trailers:only) work together' \
1490 +test_trailer_option PERL_TEST_HELPERS '%(trailers:unfold) and %(trailers:only) work together' \
1491 'trailers:unfold,only' <<-EOF
1492 $(grep -v patch.description <trailers | unfold)
1493