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