t: refactor tests depending on Perl substitution operator
We have a bunch of tests that use Perl to perform substitution via the "s/" operator. These usecases can be trivially replaced with sed(1) and tr(1). Refactor the tests accordingly so that we can drop a couple of PERL_TEST_HELPERS prerequisites. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>next
parent
db8ff64a3a
commit
cdbdc6bf8c
|
@ -5,12 +5,6 @@ test_description=check-ignore
|
||||||
TEST_CREATE_REPO_NO_TEMPLATE=1
|
TEST_CREATE_REPO_NO_TEMPLATE=1
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
if ! test_have_prereq PERL_TEST_HELPERS
|
|
||||||
then
|
|
||||||
skip_all='skipping ignores tests; Perl not available'
|
|
||||||
test_done
|
|
||||||
fi
|
|
||||||
|
|
||||||
init_vars () {
|
init_vars () {
|
||||||
global_excludes="global-excludes"
|
global_excludes="global-excludes"
|
||||||
}
|
}
|
||||||
|
@ -45,11 +39,11 @@ test_stderr () {
|
||||||
}
|
}
|
||||||
|
|
||||||
broken_c_unquote () {
|
broken_c_unquote () {
|
||||||
"$PERL_PATH" -pe 's/^"//; s/\\//; s/"$//; tr/\n/\0/' "$@"
|
sed -e 's/^"//' -e 's/\\//' -e 's/"$//' "$1" | tr '\n' '\0'
|
||||||
}
|
}
|
||||||
|
|
||||||
broken_c_unquote_verbose () {
|
broken_c_unquote_verbose () {
|
||||||
"$PERL_PATH" -pe 's/ "/ /; s/\\//; s/"$//; tr/:\t\n/\0/' "$@"
|
sed -e 's/ "/ /' -e 's/\\//' -e 's/"$//' "$1" | tr ':\t\n' '\000'
|
||||||
}
|
}
|
||||||
|
|
||||||
stderr_contains () {
|
stderr_contains () {
|
||||||
|
|
|
@ -18,7 +18,7 @@ index 5f6a263..8cb8bae 100644
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
test_expect_success PERL_TEST_HELPERS "$test_description" '
|
test_expect_success "$test_description" '
|
||||||
printf "\nx\n" > f &&
|
printf "\nx\n" > f &&
|
||||||
before=$(git hash-object f) &&
|
before=$(git hash-object f) &&
|
||||||
before=$(git rev-parse --short $before) &&
|
before=$(git rev-parse --short $before) &&
|
||||||
|
@ -31,7 +31,8 @@ test_expect_success PERL_TEST_HELPERS "$test_description" '
|
||||||
git config --bool diff.suppressBlankEmpty true &&
|
git config --bool diff.suppressBlankEmpty true &&
|
||||||
git diff f > actual &&
|
git diff f > actual &&
|
||||||
test_cmp exp actual &&
|
test_cmp exp actual &&
|
||||||
perl -i.bak -p -e "s/^\$/ /" exp &&
|
sed "s/^\$/ /" exp >exp.munged &&
|
||||||
|
mv exp.munged exp &&
|
||||||
git config --bool diff.suppressBlankEmpty false &&
|
git config --bool diff.suppressBlankEmpty false &&
|
||||||
git diff f > actual &&
|
git diff f > actual &&
|
||||||
test_cmp exp actual &&
|
test_cmp exp actual &&
|
||||||
|
|
|
@ -27,12 +27,6 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
if ! test_have_prereq PERL_TEST_HELPERS
|
|
||||||
then
|
|
||||||
skip_all='skipping rerere tests; Perl not available'
|
|
||||||
test_done
|
|
||||||
fi
|
|
||||||
|
|
||||||
test_expect_success 'setup' '
|
test_expect_success 'setup' '
|
||||||
cat >a1 <<-\EOF &&
|
cat >a1 <<-\EOF &&
|
||||||
Some title
|
Some title
|
||||||
|
@ -87,7 +81,7 @@ test_expect_success 'activate rerere, old style (conflicting merge)' '
|
||||||
test_might_fail git config --unset rerere.enabled &&
|
test_might_fail git config --unset rerere.enabled &&
|
||||||
test_must_fail git merge first &&
|
test_must_fail git merge first &&
|
||||||
|
|
||||||
sha1=$(perl -pe "s/ .*//" .git/MERGE_RR) &&
|
sha1=$(sed "s/ .*//" .git/MERGE_RR) &&
|
||||||
rr=.git/rr-cache/$sha1 &&
|
rr=.git/rr-cache/$sha1 &&
|
||||||
grep "^=======\$" $rr/preimage &&
|
grep "^=======\$" $rr/preimage &&
|
||||||
! test -f $rr/postimage &&
|
! test -f $rr/postimage &&
|
||||||
|
@ -100,7 +94,7 @@ test_expect_success 'rerere.enabled works, too' '
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
test_must_fail git merge first &&
|
test_must_fail git merge first &&
|
||||||
|
|
||||||
sha1=$(perl -pe "s/ .*//" .git/MERGE_RR) &&
|
sha1=$(sed "s/ .*//" .git/MERGE_RR) &&
|
||||||
rr=.git/rr-cache/$sha1 &&
|
rr=.git/rr-cache/$sha1 &&
|
||||||
grep ^=======$ $rr/preimage
|
grep ^=======$ $rr/preimage
|
||||||
'
|
'
|
||||||
|
@ -110,7 +104,7 @@ test_expect_success 'set up rr-cache' '
|
||||||
git config rerere.enabled true &&
|
git config rerere.enabled true &&
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
test_must_fail git merge first &&
|
test_must_fail git merge first &&
|
||||||
sha1=$(perl -pe "s/ .*//" .git/MERGE_RR) &&
|
sha1=$(sed "s/ .*//" .git/MERGE_RR) &&
|
||||||
rr=.git/rr-cache/$sha1
|
rr=.git/rr-cache/$sha1
|
||||||
'
|
'
|
||||||
|
|
||||||
|
|
|
@ -99,11 +99,12 @@ test_expect_success '... and loose copy of first delta allows for partial recove
|
||||||
git cat-file blob $blob_3 > /dev/null
|
git cat-file blob $blob_3 > /dev/null
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success PERL_TEST_HELPERS 'create corruption in data of first object' '
|
test_expect_success 'create corruption in data of first object' '
|
||||||
create_new_pack &&
|
create_new_pack &&
|
||||||
git prune-packed &&
|
git prune-packed &&
|
||||||
chmod +w ${pack}.pack &&
|
chmod +w ${pack}.pack &&
|
||||||
perl -i.bak -pe "s/ base /abcdef/" ${pack}.pack &&
|
sed "s/ base /abcdef/" ${pack}.pack >${pack}.pack.munged &&
|
||||||
|
mv ${pack}.pack.munged ${pack}.pack &&
|
||||||
test_must_fail git cat-file blob $blob_1 > /dev/null &&
|
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_2 > /dev/null &&
|
||||||
test_must_fail git cat-file blob $blob_3 > /dev/null
|
test_must_fail git cat-file blob $blob_3 > /dev/null
|
||||||
|
@ -156,11 +157,12 @@ test_expect_success '... and then a repack "clears" the corruption' '
|
||||||
git cat-file blob $blob_3 > /dev/null
|
git cat-file blob $blob_3 > /dev/null
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success PERL_TEST_HELPERS 'create corruption in data of first delta' '
|
test_expect_success 'create corruption in data of first delta' '
|
||||||
create_new_pack &&
|
create_new_pack &&
|
||||||
git prune-packed &&
|
git prune-packed &&
|
||||||
chmod +w ${pack}.pack &&
|
chmod +w ${pack}.pack &&
|
||||||
perl -i.bak -pe "s/ delta1 /abcdefgh/" ${pack}.pack &&
|
sed "s/ delta1 /abcdefgh/" ${pack}.pack >${pack}.pack.munged &&
|
||||||
|
mv ${pack}.pack.munged ${pack}.pack &&
|
||||||
git cat-file blob $blob_1 > /dev/null &&
|
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_2 > /dev/null &&
|
||||||
test_must_fail git cat-file blob $blob_3 > /dev/null
|
test_must_fail git cat-file blob $blob_3 > /dev/null
|
||||||
|
|
|
@ -395,7 +395,7 @@ test_bitmap_cases () {
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success PERL_TEST_HELPERS 'pack.preferBitmapTips' '
|
test_expect_success 'pack.preferBitmapTips' '
|
||||||
git init repo &&
|
git init repo &&
|
||||||
test_when_finished "rm -fr repo" &&
|
test_when_finished "rm -fr repo" &&
|
||||||
(
|
(
|
||||||
|
@ -421,7 +421,7 @@ test_bitmap_cases () {
|
||||||
|
|
||||||
# mark the commits which did not receive bitmaps as preferred,
|
# mark the commits which did not receive bitmaps as preferred,
|
||||||
# and generate the bitmap again
|
# and generate the bitmap again
|
||||||
perl -pe "s{^}{create refs/tags/include/$. }" <before |
|
sed "s|\(.*\)|create refs/tags/include/\1 \1|" before |
|
||||||
git update-ref --stdin &&
|
git update-ref --stdin &&
|
||||||
git -c pack.preferBitmapTips=refs/tags/include repack -adb &&
|
git -c pack.preferBitmapTips=refs/tags/include repack -adb &&
|
||||||
|
|
||||||
|
|
|
@ -177,7 +177,7 @@ test_expect_success GPGSSH 'ssh signed push sends push certificate' '
|
||||||
test_cmp expect dst/push-cert-status
|
test_cmp expect dst/push-cert-status
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success GPG,PERL_TEST_HELPERS 'inconsistent push options in signed push not allowed' '
|
test_expect_success GPG 'inconsistent push options in signed push not allowed' '
|
||||||
# First, invoke receive-pack with dummy input to obtain its preamble.
|
# First, invoke receive-pack with dummy input to obtain its preamble.
|
||||||
prepare_dst &&
|
prepare_dst &&
|
||||||
git -C dst config receive.certnonceseed sekrit &&
|
git -C dst config receive.certnonceseed sekrit &&
|
||||||
|
@ -205,7 +205,7 @@ test_expect_success GPG,PERL_TEST_HELPERS 'inconsistent push options in signed p
|
||||||
# Tweak the push output to make the push option outside the cert
|
# Tweak the push output to make the push option outside the cert
|
||||||
# different, then replay it on a fresh dst, checking that ff is not
|
# different, then replay it on a fresh dst, checking that ff is not
|
||||||
# deleted.
|
# deleted.
|
||||||
perl -pe "s/([^ ])bar/\$1baz/" push >push.tweak &&
|
sed "s/\([^ ]\)bar/\1baz/" push >push.tweak &&
|
||||||
prepare_dst &&
|
prepare_dst &&
|
||||||
git -C dst config receive.certnonceseed sekrit &&
|
git -C dst config receive.certnonceseed sekrit &&
|
||||||
git -C dst config receive.advertisepushoptions 1 &&
|
git -C dst config receive.advertisepushoptions 1 &&
|
||||||
|
|
|
@ -4,12 +4,6 @@ test_description='git rev-list should notice bad commits'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
if ! test_have_prereq PERL_TEST_HELPERS
|
|
||||||
then
|
|
||||||
skip_all='skipping rev-list with bad commit tests; Perl not available'
|
|
||||||
test_done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Note:
|
# Note:
|
||||||
# - compression level is set to zero to make "corruptions" easier to perform
|
# - compression level is set to zero to make "corruptions" easier to perform
|
||||||
# - reflog is disabled to avoid extra references which would twart the test
|
# - reflog is disabled to avoid extra references which would twart the test
|
||||||
|
@ -41,11 +35,15 @@ test_expect_success 'verify number of revisions' \
|
||||||
first_commit=$(git rev-parse HEAD~3)
|
first_commit=$(git rev-parse HEAD~3)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'corrupt second commit object' \
|
test_expect_success 'corrupt second commit object' '
|
||||||
'
|
for p in .git/objects/pack/*.pack
|
||||||
perl -i.bak -pe "s/second commit/socond commit/" .git/objects/pack/*.pack &&
|
do
|
||||||
test_must_fail git fsck --full
|
sed "s/second commit/socond commit/" "$p" >"$p.munged" &&
|
||||||
'
|
mv "$p.munged" "$p" ||
|
||||||
|
return 1
|
||||||
|
done &&
|
||||||
|
test_must_fail git fsck --full
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'rev-list should fail' '
|
test_expect_success 'rev-list should fail' '
|
||||||
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list --all > /dev/null
|
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list --all > /dev/null
|
||||||
|
|
|
@ -4,12 +4,6 @@ test_description='check handling of disallowed .gitmodule urls'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
if ! test_have_prereq PERL_TEST_HELPERS
|
|
||||||
then
|
|
||||||
skip_all='skipping submodule dash URL tests; Perl not available'
|
|
||||||
test_done
|
|
||||||
fi
|
|
||||||
|
|
||||||
test_expect_success 'setup' '
|
test_expect_success 'setup' '
|
||||||
git config --global protocol.file.allow always
|
git config --global protocol.file.allow always
|
||||||
'
|
'
|
||||||
|
@ -39,7 +33,8 @@ test_expect_success 'fsck accepts protected dash' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'remove ./ protection from .gitmodules url' '
|
test_expect_success 'remove ./ protection from .gitmodules url' '
|
||||||
perl -i -pe "s{\./}{}" .gitmodules &&
|
sed "s|\./||" .gitmodules >.gitmodules.munged &&
|
||||||
|
mv .gitmodules.munged .gitmodules &&
|
||||||
git commit -am "drop protection"
|
git commit -am "drop protection"
|
||||||
'
|
'
|
||||||
|
|
||||||
|
|
|
@ -1064,9 +1064,9 @@ test_expect_success 'status -s submodule summary (clean submodule)' '
|
||||||
test_cmp expect output
|
test_cmp expect output
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success PERL_TEST_HELPERS 'status -z implies porcelain' '
|
test_expect_success 'status -z implies porcelain' '
|
||||||
git status --porcelain |
|
git status --porcelain |
|
||||||
perl -pe "s/\012/\000/g" >expect &&
|
tr "\012" "\000" >expect &&
|
||||||
git status -z >output &&
|
git status -z >output &&
|
||||||
test_cmp expect output
|
test_cmp expect output
|
||||||
'
|
'
|
||||||
|
|
|
@ -4,12 +4,6 @@ test_description='git blame textconv support'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
if ! test_have_prereq PERL_TEST_HELPERS
|
|
||||||
then
|
|
||||||
skip_all='skipping blame textconv tests; Perl not available'
|
|
||||||
test_done
|
|
||||||
fi
|
|
||||||
|
|
||||||
find_blame() {
|
find_blame() {
|
||||||
sed -e 's/^[^(]*//'
|
sed -e 's/^[^(]*//'
|
||||||
}
|
}
|
||||||
|
@ -17,7 +11,7 @@ find_blame() {
|
||||||
cat >helper <<'EOF'
|
cat >helper <<'EOF'
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
grep -q '^bin: ' "$1" || { echo "E: $1 is not \"binary\" file" 1>&2; exit 1; }
|
grep -q '^bin: ' "$1" || { echo "E: $1 is not \"binary\" file" 1>&2; exit 1; }
|
||||||
"$PERL_PATH" -p -e 's/^bin: /converted: /' "$1"
|
sed 's/^bin: /converted: /' "$1"
|
||||||
EOF
|
EOF
|
||||||
chmod +x helper
|
chmod +x helper
|
||||||
|
|
||||||
|
|
|
@ -15,13 +15,13 @@ test_expect_success 'initialize repo' '
|
||||||
test -e file
|
test -e file
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success PERL_TEST_HELPERS '(supposedly) non-conflicting change from SVN' '
|
test_expect_success '(supposedly) non-conflicting change from SVN' '
|
||||||
test x"$(sed -n -e 58p < file)" = x58 &&
|
test x"$(sed -n -e 58p < file)" = x58 &&
|
||||||
test x"$(sed -n -e 61p < file)" = x61 &&
|
test x"$(sed -n -e 61p < file)" = x61 &&
|
||||||
svn_cmd co "$svnrepo" tmp &&
|
svn_cmd co "$svnrepo" tmp &&
|
||||||
(cd tmp &&
|
(cd tmp &&
|
||||||
perl -i.bak -p -e "s/^58$/5588/" file &&
|
sed -e "s/^58$/5588/" -e "s/^61$/6611/" file >file.munged &&
|
||||||
perl -i.bak -p -e "s/^61$/6611/" file &&
|
mv file.munged file &&
|
||||||
poke file &&
|
poke file &&
|
||||||
test x"$(sed -n -e 58p < file)" = x5588 &&
|
test x"$(sed -n -e 58p < file)" = x5588 &&
|
||||||
test x"$(sed -n -e 61p < file)" = x6611 &&
|
test x"$(sed -n -e 61p < file)" = x6611 &&
|
||||||
|
@ -37,11 +37,13 @@ test_expect_success 'some unrelated changes to git' "
|
||||||
git commit -m bye-life life
|
git commit -m bye-life life
|
||||||
"
|
"
|
||||||
|
|
||||||
test_expect_success PERL_TEST_HELPERS 'change file but in unrelated area' "
|
test_expect_success 'change file but in unrelated area' "
|
||||||
test x\"\$(sed -n -e 4p < file)\" = x4 &&
|
test x\"\$(sed -n -e 4p < file)\" = x4 &&
|
||||||
test x\"\$(sed -n -e 7p < file)\" = x7 &&
|
test x\"\$(sed -n -e 7p < file)\" = x7 &&
|
||||||
perl -i.bak -p -e 's/^4\$/4444/' file &&
|
sed -e 's/^4\$/4444/' \
|
||||||
perl -i.bak -p -e 's/^7\$/7777/' file &&
|
-e 's/^7\$/7777/' \
|
||||||
|
file >file.munged &&
|
||||||
|
mv file.munged file &&
|
||||||
test x\"\$(sed -n -e 4p < file)\" = x4444 &&
|
test x\"\$(sed -n -e 4p < file)\" = x4444 &&
|
||||||
test x\"\$(sed -n -e 7p < file)\" = x7777 &&
|
test x\"\$(sed -n -e 7p < file)\" = x7777 &&
|
||||||
git commit -m '4 => 4444, 7 => 7777' file &&
|
git commit -m '4 => 4444, 7 => 7777' file &&
|
||||||
|
|
Loading…
Reference in New Issue