Re: [PATCH v3 14/20] t/lib-gpg: refactor `sanitize_pgp()` to not depend on Perl
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Apr 1, 2025, 18:56 UTC
- Message-ID
- <c909b89f-7432-2d35-cfdb-0de9f94a7281@gmx.de>
- 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
Show 99 quoted lines
>
> 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>
> ---
> 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 <trailers)
>
> @@ -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 <trailers | unfold)
>
> 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 <trailers | unfold)
>
>
> --
> 2.49.0.472.ge94155a9ec.dirty
>
>