Merge branch 'jk/wrap-perl-used-in-tests'

* jk/wrap-perl-used-in-tests:
  t: use perl instead of "$PERL_PATH" where applicable
  t: provide a perl() function which uses $PERL_PATH
This commit is contained in:
Junio C Hamano 2013-11-04 14:58:01 -08:00
commit a3a9cff037
29 changed files with 62 additions and 54 deletions

View File

@ -340,7 +340,11 @@ Don't:
- use perl without spelling it as "$PERL_PATH". This is to help our
friends on Windows where the platform Perl often adds CR before
the end of line, and they bundle Git with a version of Perl that
does not do so, whose path is specified with $PERL_PATH.
does not do so, whose path is specified with $PERL_PATH. Note that we
provide a "perl" function which uses $PERL_PATH under the hood, so
you do not need to worry when simply running perl in the test scripts
(but you do, for example, on a shebang line or in a sub script
created via "write_script").
- use sh without spelling it as "$SHELL_PATH", when the script can
be misinterpreted by broken platform shell (e.g. Solaris).
@ -387,7 +391,7 @@ of the test_* functions (see the "Test harness library" section
below), e.g.:
test_expect_success PERL 'I need Perl' '
"$PERL_PATH" -e "hlagh() if unf_unf()"
perl -e "hlagh() if unf_unf()"
'
The advantage of skipping tests like this is that platforms that don't
@ -520,7 +524,7 @@ library for your script to use.
test_external \
'GitwebCache::*FileCache*' \
"$PERL_PATH" "$TEST_DIRECTORY"/t9503/test_cache_interface.pl
perl "$TEST_DIRECTORY"/t9503/test_cache_interface.pl
If the test is outputting its own TAP you should set the
test_external_has_tap variable somewhere before calling the first
@ -536,7 +540,7 @@ library for your script to use.
test_external_without_stderr \
'Perl API' \
"$PERL_PATH" "$TEST_DIRECTORY"/t9700/test.pl
perl "$TEST_DIRECTORY"/t9700/test.pl
- test_expect_code <exit-code> <command>

View File

@ -69,7 +69,7 @@ gitweb_run () {
# written to web server logs, so we are not interested in that:
# we are interested only in properly formatted errors/warnings
rm -f gitweb.log &&
"$PERL_PATH" -- "$SCRIPT_NAME" \
perl -- "$SCRIPT_NAME" \
>gitweb.output 2>gitweb.log &&
perl -w -e '
open O, ">gitweb.headers";

View File

@ -29,7 +29,7 @@ export svnrepo
svnconf=$PWD/svnconf
export svnconf
"$PERL_PATH" -w -e "
perl -w -e "
use SVN::Core;
use SVN::Repos;
\$SVN::Core::VERSION gt '1.1.0' or exit(42);
@ -146,7 +146,7 @@ stop_httpd () {
}
convert_to_rev_db () {
"$PERL_PATH" -w -- - "$@" <<\EOF
perl -w -- - "$@" <<\EOF
use strict;
@ARGV == 2 or die "usage: convert_to_rev_db <input> <output>";
open my $wr, '+>', $ARGV[1] or die "$!: couldn't open: $ARGV[1]";

View File

@ -19,7 +19,7 @@ test_expect_success PERL 'set up terminal for tests' '
then
:
elif
"$PERL_PATH" "$TEST_DIRECTORY"/test-terminal.perl \
perl "$TEST_DIRECTORY"/test-terminal.perl \
sh -c "test -t 1 && test -t 2"
then
test_set_prereq TTY &&
@ -29,7 +29,7 @@ test_expect_success PERL 'set up terminal for tests' '
echo >&4 "test_terminal: need to declare TTY prerequisite"
return 127
fi
"$PERL_PATH" "$TEST_DIRECTORY"/test-terminal.perl "$@"
perl "$TEST_DIRECTORY"/test-terminal.perl "$@"
}
fi
'

View File

@ -12,7 +12,7 @@ if ! test_have_prereq PERL; then
test_done
fi
"$PERL_PATH" -MTest::More -e 0 2>/dev/null || {
perl -MTest::More -e 0 2>/dev/null || {
skip_all="Perl Test::More unavailable, skipping test"
test_done
}
@ -22,6 +22,6 @@ test_external_has_tap=1
test_external_without_stderr \
'Perl Git::I18N API' \
"$PERL_PATH" "$TEST_DIRECTORY"/t0202/test.pl
perl "$TEST_DIRECTORY"/t0202/test.pl
test_done

View File

@ -42,13 +42,13 @@ test_expect_success 'ls-tree piped to mktree (2)' '
'
test_expect_success 'ls-tree output in wrong order given to mktree (1)' '
"$PERL_PATH" -e "print reverse <>" <top |
perl -e "print reverse <>" <top |
git mktree >actual &&
test_cmp tree actual
'
test_expect_success 'ls-tree output in wrong order given to mktree (2)' '
"$PERL_PATH" -e "print reverse <>" <top.withsub |
perl -e "print reverse <>" <top.withsub |
git mktree >actual &&
test_cmp tree.withsub actual
'

View File

@ -69,7 +69,7 @@ test_expect_success 'ls-files -z does not quote funny filename' '
tabs ," (dq) and spaces
EOF
git ls-files -z >ls-files.z &&
"$PERL_PATH" -pe "y/\000/\012/" <ls-files.z >current &&
perl -pe "y/\000/\012/" <ls-files.z >current &&
test_cmp expected current
'
@ -106,7 +106,7 @@ test_expect_success 'diff-index -z does not quote funny filename' '
tabs ," (dq) and spaces
EOF
git diff-index -z --name-status $t0 >diff-index.z &&
"$PERL_PATH" -pe "y/\000/\012/" <diff-index.z >current &&
perl -pe "y/\000/\012/" <diff-index.z >current &&
test_cmp expected current
'
@ -116,7 +116,7 @@ test_expect_success 'diff-tree -z does not quote funny filename' '
tabs ," (dq) and spaces
EOF
git diff-tree -z --name-status $t0 $t1 >diff-tree.z &&
"$PERL_PATH" -pe y/\\000/\\012/ <diff-tree.z >current &&
perl -pe y/\\000/\\012/ <diff-tree.z >current &&
test_cmp expected current
'

View File

@ -293,7 +293,7 @@ check_threading () {
(git format-patch --stdout "$@"; echo $? > status.out) |
# Prints everything between the Message-ID and In-Reply-To,
# and replaces all Message-ID-lookalikes by a sequence number
"$PERL_PATH" -ne '
perl -ne '
if (/^(message-id|references|in-reply-to)/i) {
$printing = 1;
} elsif (/^\S/) {

View File

@ -177,7 +177,7 @@ test_expect_success 'no diff with -diff' '
git diff | grep Binary
'
echo NULZbetweenZwords | "$PERL_PATH" -pe 'y/Z/\000/' > file
echo NULZbetweenZwords | perl -pe 'y/Z/\000/' > file
test_expect_success 'force diff with "diff"' '
echo >.gitattributes "file diff" &&

View File

@ -27,7 +27,7 @@ test_expect_success \
git config --bool diff.suppressBlankEmpty true &&
git diff f > actual &&
test_cmp exp actual &&
"$PERL_PATH" -i.bak -p -e "s/^\$/ /" exp &&
perl -i.bak -p -e "s/^\$/ /" exp &&
git config --bool diff.suppressBlankEmpty false &&
git diff f > actual &&
test_cmp exp actual &&

View File

@ -23,10 +23,10 @@ test_expect_success 'setup' '
git commit -m "Initial Version" 2>/dev/null &&
git checkout -b binary &&
"$PERL_PATH" -pe "y/x/\000/" <file1 >file3 &&
perl -pe "y/x/\000/" <file1 >file3 &&
cat file3 >file4 &&
git add file2 &&
"$PERL_PATH" -pe "y/\000/v/" <file3 >file1 &&
perl -pe "y/\000/v/" <file3 >file1 &&
rm -f file2 &&
git update-index --add --remove file1 file2 file3 file4 &&
git commit -m "Second Version" &&

View File

@ -12,14 +12,14 @@ test_description='git apply in reverse
test_expect_success setup '
for i in a b c d e f g h i j k l m n; do echo $i; done >file1 &&
"$PERL_PATH" -pe "y/ijk/\\000\\001\\002/" <file1 >file2 &&
perl -pe "y/ijk/\\000\\001\\002/" <file1 >file2 &&
git add file1 file2 &&
git commit -m initial &&
git tag initial &&
for i in a b c g h i J K L m o n p q; do echo $i; done >file1 &&
"$PERL_PATH" -pe "y/mon/\\000\\001\\002/" <file1 >file2 &&
perl -pe "y/mon/\\000\\001\\002/" <file1 >file2 &&
git commit -a -m second &&
git tag second &&

View File

@ -78,7 +78,7 @@ test_expect_success 'activate rerere, old style (conflicting merge)' '
test_might_fail git config --unset rerere.enabled &&
test_must_fail git merge first &&
sha1=$("$PERL_PATH" -pe "s/ .*//" .git/MERGE_RR) &&
sha1=$(perl -pe "s/ .*//" .git/MERGE_RR) &&
rr=.git/rr-cache/$sha1 &&
grep "^=======\$" $rr/preimage &&
! test -f $rr/postimage &&
@ -91,7 +91,7 @@ test_expect_success 'rerere.enabled works, too' '
git reset --hard &&
test_must_fail git merge first &&
sha1=$("$PERL_PATH" -pe "s/ .*//" .git/MERGE_RR) &&
sha1=$(perl -pe "s/ .*//" .git/MERGE_RR) &&
rr=.git/rr-cache/$sha1 &&
grep ^=======$ $rr/preimage
'
@ -101,7 +101,7 @@ test_expect_success 'set up rr-cache' '
git config rerere.enabled true &&
git reset --hard &&
test_must_fail git merge first &&
sha1=$("$PERL_PATH" -pe "s/ .*//" .git/MERGE_RR) &&
sha1=$(perl -pe "s/ .*//" .git/MERGE_RR) &&
rr=.git/rr-cache/$sha1
'
@ -185,7 +185,7 @@ test_expect_success 'rerere updates postimage timestamp' '
test_expect_success 'rerere clear' '
rm $rr/postimage &&
echo "$sha1 a1" | "$PERL_PATH" -pe "y/\012/\000/" >.git/MERGE_RR &&
echo "$sha1 a1" | perl -pe "y/\012/\000/" >.git/MERGE_RR &&
git rerere clear &&
! test -d $rr
'

View File

@ -13,9 +13,9 @@ TRASH=`pwd`
test_expect_success \
'setup' \
'rm -f .git/index* &&
"$PERL_PATH" -e "print \"a\" x 4096;" > a &&
"$PERL_PATH" -e "print \"b\" x 4096;" > b &&
"$PERL_PATH" -e "print \"c\" x 4096;" > c &&
perl -e "print \"a\" x 4096;" > a &&
perl -e "print \"b\" x 4096;" > b &&
perl -e "print \"c\" x 4096;" > c &&
test-genrandom "seed a" 2097152 > a_big &&
test-genrandom "seed b" 2097152 > b_big &&
git update-index --add a a_big b b_big c &&
@ -129,7 +129,7 @@ test_expect_success \
cd "$TRASH"
test_expect_success 'compare delta flavors' '
"$PERL_PATH" -e '\''
perl -e '\''
defined($_ = -s $_) or die for @ARGV;
exit 1 if $ARGV[0] <= $ARGV[1];
'\'' test-2-$packname_2.pack test-3-$packname_3.pack

View File

@ -98,7 +98,7 @@ test_expect_success \
'create_new_pack &&
git prune-packed &&
chmod +w ${pack}.pack &&
"$PERL_PATH" -i.bak -pe "s/ base /abcdef/" ${pack}.pack &&
perl -i.bak -pe "s/ base /abcdef/" ${pack}.pack &&
test_must_fail git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null'
@ -155,7 +155,7 @@ test_expect_success \
'create_new_pack &&
git prune-packed &&
chmod +w ${pack}.pack &&
"$PERL_PATH" -i.bak -pe "s/ delta1 /abcdefgh/" ${pack}.pack &&
perl -i.bak -pe "s/ delta1 /abcdefgh/" ${pack}.pack &&
git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null'

View File

@ -235,7 +235,7 @@ test_expect_success EXPENSIVE 'create 50,000 tags in the repo' '
done | git fast-import --export-marks=marks &&
# now assign tags to all the dangling commits we created above
tag=$("$PERL_PATH" -e "print \"bla\" x 30") &&
tag=$(perl -e "print \"bla\" x 30") &&
sed -e "s|^:\([^ ]*\) \(.*\)$|\2 refs/tags/$tag-\1|" <marks >>packed-refs
)
'

View File

@ -37,7 +37,7 @@ test_expect_success 'verify number of revisions' \
test_expect_success 'corrupt second commit object' \
'
"$PERL_PATH" -i.bak -pe "s/second commit/socond commit/" .git/objects/pack/*.pack &&
perl -i.bak -pe "s/second commit/socond commit/" .git/objects/pack/*.pack &&
test_must_fail git fsck --full
'

View File

@ -25,7 +25,7 @@ test_expect_success 'set up --reverse example' '
test_expect_success '--reverse --parents --full-history combines correctly' '
git rev-list --parents --full-history master -- foo |
"$PERL_PATH" -e "print reverse <>" > expected &&
perl -e "print reverse <>" > expected &&
git rev-list --reverse --parents --full-history master -- foo \
> actual &&
test_cmp actual expected
@ -33,7 +33,7 @@ test_expect_success '--reverse --parents --full-history combines correctly' '
test_expect_success '--boundary does too' '
git rev-list --boundary --parents --full-history master ^root -- foo |
"$PERL_PATH" -e "print reverse <>" > expected &&
perl -e "print reverse <>" > expected &&
git rev-list --boundary --reverse --parents --full-history \
master ^root -- foo > actual &&
test_cmp actual expected

View File

@ -994,7 +994,7 @@ test_expect_success 'status -s submodule summary (clean submodule)' '
test_expect_success 'status -z implies porcelain' '
git status --porcelain |
"$PERL_PATH" -pe "s/\012/\000/g" >expect &&
perl -pe "s/\012/\000/g" >expect &&
git status -z >output &&
test_cmp expect output
'

View File

@ -29,7 +29,7 @@ fi
compare_svn_head_with () {
# extract just the log message and strip out committer info.
# don't use --limit here since svn 1.1.x doesn't have it,
LC_ALL="$a_utf8_locale" svn log `git svn info --url` | "$PERL_PATH" -w -e '
LC_ALL="$a_utf8_locale" svn log `git svn info --url` | perl -w -e '
use bytes;
$/ = ("-"x72) . "\n";
my @x = <STDIN>;

View File

@ -20,8 +20,8 @@ test_expect_success '(supposedly) non-conflicting change from SVN' '
test x"`sed -n -e 61p < file`" = x61 &&
svn_cmd co "$svnrepo" tmp &&
(cd tmp &&
"$PERL_PATH" -i.bak -p -e "s/^58$/5588/" file &&
"$PERL_PATH" -i.bak -p -e "s/^61$/6611/" file &&
perl -i.bak -p -e "s/^58$/5588/" file &&
perl -i.bak -p -e "s/^61$/6611/" file &&
poke file &&
test x"`sed -n -e 58p < file`" = x5588 &&
test x"`sed -n -e 61p < file`" = x6611 &&
@ -40,8 +40,8 @@ test_expect_success 'some unrelated changes to git' "
test_expect_success 'change file but in unrelated area' "
test x\"\`sed -n -e 4p < file\`\" = x4 &&
test x\"\`sed -n -e 7p < file\`\" = x7 &&
"$PERL_PATH" -i.bak -p -e 's/^4\$/4444/' file &&
"$PERL_PATH" -i.bak -p -e 's/^7\$/7777/' file &&
perl -i.bak -p -e 's/^4\$/4444/' file &&
perl -i.bak -p -e 's/^7\$/7777/' file &&
test x\"\`sed -n -e 4p < file\`\" = x4444 &&
test x\"\`sed -n -e 7p < file\`\" = x7777 &&
git commit -m '4 => 4444, 7 => 7777' file &&

View File

@ -12,7 +12,7 @@ test_description='test git fast-import utility'
# This could be written as "head -c $1", but IRIX "head" does not
# support the -c option.
head_c () {
"$PERL_PATH" -e '
perl -e '
my $len = $ARGV[1];
while ($len > 0) {
my $s;

View File

@ -429,7 +429,7 @@ test_expect_success 'fast-export quotes pathnames' '
--cacheinfo 100644 $blob "path with \\backslash" \
--cacheinfo 100644 $blob "path with space" &&
git commit -m addition &&
git ls-files -z -s | "$PERL_PATH" -0pe "s{\\t}{$&subdir/}" >index &&
git ls-files -z -s | perl -0pe "s{\\t}{$&subdir/}" >index &&
git read-tree --empty &&
git update-index -z --index-info <index &&
git commit -m rename &&

View File

@ -20,7 +20,7 @@ then
skip_all='skipping git-cvsserver tests, cvs not found'
test_done
fi
"$PERL_PATH" -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
skip_all='skipping git-cvsserver tests, Perl SQLite interface unavailable'
test_done
}

View File

@ -68,7 +68,7 @@ then
skip_all='skipping git-cvsserver tests, perl not available'
test_done
fi
"$PERL_PATH" -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
skip_all='skipping git-cvsserver tests, Perl SQLite interface unavailable'
test_done
}

View File

@ -76,7 +76,7 @@ then
skip_all='skipping git-cvsserver tests, perl not available'
test_done
fi
"$PERL_PATH" -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
skip_all='skipping git-cvsserver tests, Perl SQLite interface unavailable'
test_done
}

View File

@ -11,7 +11,7 @@ if ! test_have_prereq PERL; then
test_done
fi
"$PERL_PATH" -MTest::More -e 0 2>/dev/null || {
perl -MTest::More -e 0 2>/dev/null || {
skip_all="Perl Test::More unavailable, skipping test"
test_done
}
@ -55,6 +55,6 @@ test_external_has_tap=1
test_external_without_stderr \
'Perl API' \
"$PERL_PATH" "$TEST_DIRECTORY"/t9700/test.pl
perl "$TEST_DIRECTORY"/t9700/test.pl
test_done

View File

@ -263,7 +263,7 @@ test_expect_success 'cope with rcs keyword expansion damage' '
git config git-p4.attemptRCSCleanup true &&
(cd "$cli" && p4_append_to_file kwfile1.c) &&
old_lines=$(wc -l <kwfile1.c) &&
"$PERL_PATH" -n -i -e "print unless m/Revision:/" kwfile1.c &&
perl -n -i -e "print unless m/Revision:/" kwfile1.c &&
new_lines=$(wc -l <kwfile1.c) &&
test $new_lines = $(($old_lines - 1)) &&

View File

@ -76,11 +76,11 @@ test_decode_color () {
}
nul_to_q () {
"$PERL_PATH" -pe 'y/\000/Q/'
perl -pe 'y/\000/Q/'
}
q_to_nul () {
"$PERL_PATH" -pe 'y/Q/\000/'
perl -pe 'y/Q/\000/'
}
q_to_cr () {
@ -648,7 +648,7 @@ test_seq () {
2) ;;
*) error "bug in the test script: not 1 or 2 parameters to test_seq" ;;
esac
"$PERL_PATH" -le 'print for $ARGV[0]..$ARGV[1]' -- "$@"
perl -le 'print for $ARGV[0]..$ARGV[1]' -- "$@"
}
# This function can be used to schedule some commands to be run
@ -711,6 +711,10 @@ test_ln_s_add () {
fi
}
perl () {
command "$PERL_PATH" "$@"
}
# The following mingw_* functions obey POSIX shell syntax, but are actually
# bash scripts, and are meant to be used only with bash on Windows.