Re: [PATCH] t5150: skip request-pull test if Perl is disabled
- From
Ruud van Asseldonk <dev@veniogames.com>
- Date
- Nov 27, 2019, 22:42 UTC
- Message-ID
- <a5fb708d-e7b6-b149-7b21-07649487fb65@veniogames.com>
- In-Reply-To
- <20191126004647.GD14157@google.com>
Thanks for having a look Jonathan.
Jonathan Nieder wrote:
Show 21 quoted lines
> Ruud van Asseldonk wrote:
>
>> The git-request-pull.sh script invokes Perl,
>
> Okay, on second glance I found it:
>
> set fnord $(git ls-remote "$url" | @@PERL@@ -e "$find_matching_ref" "${remote:-HEAD}" "$headrev")
>
> This does seem pretty inherently to require perl, so makes sense.
>
> I wonder if we can generalize this. For example, would it make sense to
> have a helper that looks for @@PERL@@ in a file, so we could say
>
> if uses_perl git-request-pull.sh && ! test_have_prereq PERL
> then
> ...
> fi
>
> That way, this would be more futureproof in case someone eliminates
> the perl dependency (either by improving that particular parsing step
> or by rewriting the whole program in C).That sounds like a good idea. How about turning that into a test itself? The test would check that the script mentions @@PERL@@, as the first subtest. That way, if somebody removes the Perl dependency in the future, that will make the test fail, and that will be a reminder to remove the check from the test, so the test runs unconditionally.
> In any event, > Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> > > Do the request-pull tests in t7006-pager.sh need the same treatment?
I think these tests are fine, they run "git -p request-pull", not enough arguments to make request-pull do something, so it prints its usage and exits with 1. The tests use test_must_fail to verify the exit code, and printing usage does go through the pager. request-pull does not call Perl when it only prints its usage.