tests: move copy/pasted PERL + Test::More checks to a lib-perl.sh

Since the original "perl -MTest::More" prerequisite check was added in
[1] it's been copy/pasted in [2], [3] and [4]. As we'll be changing
these codepaths in a subsequent commit let's consolidate these.

While we're at it let's move these to a lazy prereq, and make them
conform to our usual coding style (e.g. "\nthen", not "; then").

1. e46f9c8161 (t9700: skip when Test::More is not available,
   2008-06-29)
2. 5e9637c629 (i18n: add infrastructure for translating Git with
   gettext, 2011-11-18)
3. 8d314d7afe (send-email: reduce dependencies impact on
   parse_address_line, 2015-07-07)
4. f07eeed123 (git-credential-netrc: adapt to test framework for git,
   2018-05-12)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2022-07-28 01:13:36 +02:00 committed by Junio C Hamano
parent fee65b194d
commit 64f3f5a3f6
4 changed files with 25 additions and 28 deletions

View File

@ -3,16 +3,9 @@
cd ../../../t cd ../../../t
test_description='git-credential-netrc' test_description='git-credential-netrc'
. ./test-lib.sh . ./test-lib.sh
. "$TEST_DIRECTORY"/lib-perl.sh
if ! test_have_prereq PERL; then skip_all_if_no_Test_More
skip_all='skipping perl interface tests, perl not available'
test_done
fi
perl -MTest::More -e 0 2>/dev/null || {
skip_all="Perl Test::More unavailable, skipping test"
test_done
}
# set up test repository # set up test repository

19
t/lib-perl.sh Normal file
View File

@ -0,0 +1,19 @@
# Copyright (c) 2022 Ævar Arnfjörð Bjarmason
test_lazy_prereq PERL_TEST_MORE '
perl -MTest::More -e 0
'
skip_all_if_no_Test_More () {
if ! test_have_prereq PERL
then
skip_all='skipping perl interface tests, perl not available'
test_done
fi
if ! test_have_prereq PERL_TEST_MORE
then
skip_all="Perl Test::More unavailable, skipping test"
test_done
fi
}

View File

@ -7,16 +7,8 @@ test_description='Perl gettext interface (Git::I18N)'
TEST_PASSES_SANITIZE_LEAK=true TEST_PASSES_SANITIZE_LEAK=true
. ./lib-gettext.sh . ./lib-gettext.sh
. "$TEST_DIRECTORY"/lib-perl.sh
if ! test_have_prereq PERL; then skip_all_if_no_Test_More
skip_all='skipping perl interface tests, perl not available'
test_done
fi
perl -MTest::More -e 0 2>/dev/null || {
skip_all="Perl Test::More unavailable, skipping test"
test_done
}
# The external test will outputs its own plan # The external test will outputs its own plan
test_external_has_tap=1 test_external_has_tap=1

View File

@ -5,16 +5,9 @@
test_description='perl interface (Git.pm)' test_description='perl interface (Git.pm)'
. ./test-lib.sh . ./test-lib.sh
. "$TEST_DIRECTORY"/lib-perl.sh
if ! test_have_prereq PERL; then skip_all_if_no_Test_More
skip_all='skipping perl interface tests, perl not available'
test_done
fi
perl -MTest::More -e 0 2>/dev/null || {
skip_all="Perl Test::More unavailable, skipping test"
test_done
}
# set up test repository # set up test repository