t: introduce PERL_TEST_HELPERS prerequisite
In the early days of Git, Perl was used quite prominently throughout the project. This has changed significantly as almost all of the executables we ship nowadays have eventually been rewritten in C. Only a handful of subsystems remain that require Perl: - gitweb, a read-only web interface. - A couple of scripts that allow importing repositories from GNU Arch, CVS and Subversion. - git-send-email(1), which can be used to send mails. - git-request-pull(1), which is used to request somebody to pull from a URL by sending an email. - git-filter-branch(1), which uses Perl with the `--state-branch` option. This command is typically recommended against nowadays in favor of git-filter-repo(1). - Our Perl bindings for Git. - The netrc Git credential helper. None of these subsystems can really be considered to be part of the "core" of Git, and an installation without them is fully functional. It is more likely than not that an end user wouldn't even notice that any features are missing if those tools weren't installed. But while Perl nowadays very much is an optional dependency of Git, there is a significant limitation when Perl isn't available: developers cannot run our test suite. Preceding commits have started to lift this restriction by removing the strict dependency on Perl in many central parts of the test library. But there are still many tests that rely on small Perl helpers to do various different things. Introduce a new PERL_TEST_HELPERS prerequisite that guards all tests that require Perl. This prerequisite is explicitly different than the preexisting PERL prerequisite: - PERL records whether or not features depending on the Perl interpreter are built. - PERL_TEST_HELPERS records whether or not a Perl interpreter is available for our tests. By having these two separate prerequisites we can thus distinguish between tests that inherently depend on Perl because the underlying feature does, and those tests that depend on Perl because the test itself is using Perl. Adapt all tests to set the PERL_TEST_HELPERS prerequisite as needed. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>main
parent
21386ed6eb
commit
23e21a58d5
|
@ -5,6 +5,12 @@ 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"
|
||||||
}
|
}
|
||||||
|
|
|
@ -619,7 +619,7 @@ test_expect_success 'required process filter should be used only for "clean" ope
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'required process filter should process multiple packets' '
|
test_expect_success PERL_TEST_HELPERS 'required process filter should process multiple packets' '
|
||||||
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
|
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
|
||||||
test_config_global filter.protocol.required true &&
|
test_config_global filter.protocol.required true &&
|
||||||
|
|
||||||
|
@ -684,7 +684,7 @@ test_expect_success 'required process filter should process multiple packets' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'required process filter with clean error should fail' '
|
test_expect_success PERL_TEST_HELPERS 'required process filter with clean error should fail' '
|
||||||
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
|
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
|
||||||
test_config_global filter.protocol.required true &&
|
test_config_global filter.protocol.required true &&
|
||||||
rm -rf repo &&
|
rm -rf repo &&
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='test trace2 facility (normal target)'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping trace2 tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
# Turn off any inherited trace2 settings for this test.
|
# Turn off any inherited trace2 settings for this test.
|
||||||
sane_unset GIT_TRACE2 GIT_TRACE2_PERF GIT_TRACE2_EVENT
|
sane_unset GIT_TRACE2 GIT_TRACE2_PERF GIT_TRACE2_EVENT
|
||||||
sane_unset GIT_TRACE2_BRIEF
|
sane_unset GIT_TRACE2_BRIEF
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='test trace2 facility (perf target)'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping trace2 tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
# Turn off any inherited trace2 settings for this test.
|
# Turn off any inherited trace2 settings for this test.
|
||||||
sane_unset GIT_TRACE2 GIT_TRACE2_PERF GIT_TRACE2_EVENT
|
sane_unset GIT_TRACE2 GIT_TRACE2_PERF GIT_TRACE2_EVENT
|
||||||
sane_unset GIT_TRACE2_PERF_BRIEF
|
sane_unset GIT_TRACE2_PERF_BRIEF
|
||||||
|
|
|
@ -643,7 +643,7 @@ test_expect_success 'basic: commit and list refs' '
|
||||||
test_cmp actual expect
|
test_cmp actual expect
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'basic: can write large commit message' '
|
test_expect_success PERL_TEST_HELPERS 'basic: can write large commit message' '
|
||||||
test_when_finished "rm -rf repo" &&
|
test_when_finished "rm -rf repo" &&
|
||||||
git init repo &&
|
git init repo &&
|
||||||
perl -e "
|
perl -e "
|
||||||
|
|
|
@ -139,7 +139,7 @@ test_expect_success 'small block size leads to multiple ref blocks' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'small block size fails with large reflog message' '
|
test_expect_success PERL_TEST_HELPERS 'small block size fails with large reflog message' '
|
||||||
test_when_finished "rm -rf repo" &&
|
test_when_finished "rm -rf repo" &&
|
||||||
git init repo &&
|
git init repo &&
|
||||||
(
|
(
|
||||||
|
|
|
@ -1270,7 +1270,7 @@ extract_batch_output () {
|
||||||
' "$@"
|
' "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'cat-file --batch-all-objects --batch ignores replace' '
|
test_expect_success PERL_TEST_HELPERS 'cat-file --batch-all-objects --batch ignores replace' '
|
||||||
git cat-file --batch-all-objects --batch >actual.raw &&
|
git cat-file --batch-all-objects --batch >actual.raw &&
|
||||||
extract_batch_output $orig <actual.raw >actual &&
|
extract_batch_output $orig <actual.raw >actual &&
|
||||||
{
|
{
|
||||||
|
|
|
@ -205,7 +205,7 @@ test_expect_success 'too-short tree' '
|
||||||
grep "too-short tree object" err
|
grep "too-short tree object" err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'malformed mode in tree' '
|
test_expect_success PERL_TEST_HELPERS 'malformed mode in tree' '
|
||||||
hex_oid=$(echo foo | git hash-object --stdin -w) &&
|
hex_oid=$(echo foo | git hash-object --stdin -w) &&
|
||||||
bin_oid=$(echo $hex_oid | hex2oct) &&
|
bin_oid=$(echo $hex_oid | hex2oct) &&
|
||||||
printf "9100644 \0$bin_oid" >tree-with-malformed-mode &&
|
printf "9100644 \0$bin_oid" >tree-with-malformed-mode &&
|
||||||
|
@ -213,7 +213,7 @@ test_expect_success 'malformed mode in tree' '
|
||||||
grep "malformed mode in tree entry" err
|
grep "malformed mode in tree entry" err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'empty filename in tree' '
|
test_expect_success PERL_TEST_HELPERS 'empty filename in tree' '
|
||||||
hex_oid=$(echo foo | git hash-object --stdin -w) &&
|
hex_oid=$(echo foo | git hash-object --stdin -w) &&
|
||||||
bin_oid=$(echo $hex_oid | hex2oct) &&
|
bin_oid=$(echo $hex_oid | hex2oct) &&
|
||||||
printf "100644 \0$bin_oid" >tree-with-empty-filename &&
|
printf "100644 \0$bin_oid" >tree-with-empty-filename &&
|
||||||
|
@ -221,7 +221,7 @@ test_expect_success 'empty filename in tree' '
|
||||||
grep "empty filename in tree entry" err
|
grep "empty filename in tree entry" err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'duplicate filename in tree' '
|
test_expect_success PERL_TEST_HELPERS 'duplicate filename in tree' '
|
||||||
hex_oid=$(echo foo | git hash-object --stdin -w) &&
|
hex_oid=$(echo foo | git hash-object --stdin -w) &&
|
||||||
bin_oid=$(echo $hex_oid | hex2oct) &&
|
bin_oid=$(echo $hex_oid | hex2oct) &&
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,13 +41,13 @@ test_expect_success 'ls-tree piped to mktree (2)' '
|
||||||
test_cmp tree.withsub actual
|
test_cmp tree.withsub actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'ls-tree output in wrong order given to mktree (1)' '
|
test_expect_success PERL_TEST_HELPERS 'ls-tree output in wrong order given to mktree (1)' '
|
||||||
perl -e "print reverse <>" <top |
|
perl -e "print reverse <>" <top |
|
||||||
git mktree >actual &&
|
git mktree >actual &&
|
||||||
test_cmp tree actual
|
test_cmp tree actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'ls-tree output in wrong order given to mktree (2)' '
|
test_expect_success PERL_TEST_HELPERS 'ls-tree output in wrong order given to mktree (2)' '
|
||||||
perl -e "print reverse <>" <top.withsub |
|
perl -e "print reverse <>" <top.withsub |
|
||||||
git mktree >actual &&
|
git mktree >actual &&
|
||||||
test_cmp tree.withsub actual
|
test_cmp tree.withsub actual
|
||||||
|
|
|
@ -346,7 +346,7 @@ test_expect_success 'unparseable tree object' '
|
||||||
test_grep ! "fatal: empty filename in tree entry" out
|
test_grep ! "fatal: empty filename in tree entry" out
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'tree entry with type mismatch' '
|
test_expect_success PERL_TEST_HELPERS 'tree entry with type mismatch' '
|
||||||
test_when_finished "remove_object \$blob" &&
|
test_when_finished "remove_object \$blob" &&
|
||||||
test_when_finished "remove_object \$tree" &&
|
test_when_finished "remove_object \$tree" &&
|
||||||
test_when_finished "remove_object \$commit" &&
|
test_when_finished "remove_object \$commit" &&
|
||||||
|
@ -364,7 +364,7 @@ test_expect_success 'tree entry with type mismatch' '
|
||||||
test_grep ! "dangling blob" out
|
test_grep ! "dangling blob" out
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'tree entry with bogus mode' '
|
test_expect_success PERL_TEST_HELPERS 'tree entry with bogus mode' '
|
||||||
test_when_finished "remove_object \$blob" &&
|
test_when_finished "remove_object \$blob" &&
|
||||||
test_when_finished "remove_object \$tree" &&
|
test_when_finished "remove_object \$tree" &&
|
||||||
blob=$(echo blob | git hash-object -w --stdin) &&
|
blob=$(echo blob | git hash-object -w --stdin) &&
|
||||||
|
@ -984,7 +984,7 @@ corrupt_index_checksum () {
|
||||||
|
|
||||||
# Corrupt the checksum on the index and then
|
# Corrupt the checksum on the index and then
|
||||||
# verify that only fsck notices.
|
# verify that only fsck notices.
|
||||||
test_expect_success 'detect corrupt index file in fsck' '
|
test_expect_success PERL_TEST_HELPERS 'detect corrupt index file in fsck' '
|
||||||
cp .git/index .git/index.backup &&
|
cp .git/index .git/index.backup &&
|
||||||
test_when_finished "mv .git/index.backup .git/index" &&
|
test_when_finished "mv .git/index.backup .git/index" &&
|
||||||
corrupt_index_checksum &&
|
corrupt_index_checksum &&
|
||||||
|
|
|
@ -63,7 +63,7 @@ test_expect_success 'ls-files quotes funny filename' '
|
||||||
test_cmp expected current
|
test_cmp expected current
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'ls-files -z does not quote funny filename' '
|
test_expect_success PERL_TEST_HELPERS 'ls-files -z does not quote funny filename' '
|
||||||
cat >expected <<-\EOF &&
|
cat >expected <<-\EOF &&
|
||||||
just space
|
just space
|
||||||
no-funny
|
no-funny
|
||||||
|
@ -101,7 +101,7 @@ test_expect_success 'diff-tree --name-status quotes funny filename' '
|
||||||
test_cmp expected current
|
test_cmp expected current
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'diff-index -z does not quote funny filename' '
|
test_expect_success PERL_TEST_HELPERS 'diff-index -z does not quote funny filename' '
|
||||||
cat >expected <<-\EOF &&
|
cat >expected <<-\EOF &&
|
||||||
A
|
A
|
||||||
tabs ," (dq) and spaces
|
tabs ," (dq) and spaces
|
||||||
|
@ -111,7 +111,7 @@ test_expect_success 'diff-index -z does not quote funny filename' '
|
||||||
test_cmp expected current
|
test_cmp expected current
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'diff-tree -z does not quote funny filename' '
|
test_expect_success PERL_TEST_HELPERS 'diff-tree -z does not quote funny filename' '
|
||||||
cat >expected <<-\EOF &&
|
cat >expected <<-\EOF &&
|
||||||
A
|
A
|
||||||
tabs ," (dq) and spaces
|
tabs ," (dq) and spaces
|
||||||
|
|
|
@ -11,6 +11,12 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
. "$TEST_DIRECTORY"/lib-diff.sh
|
. "$TEST_DIRECTORY"/lib-diff.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping diff various tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success setup '
|
test_expect_success setup '
|
||||||
|
|
||||||
GIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&
|
GIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&
|
||||||
|
|
|
@ -448,7 +448,7 @@ cat >>expect.no-threading <<EOF
|
||||||
---
|
---
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'no threading' '
|
test_expect_success PERL_TEST_HELPERS 'no threading' '
|
||||||
git checkout side &&
|
git checkout side &&
|
||||||
check_threading expect.no-threading main
|
check_threading expect.no-threading main
|
||||||
'
|
'
|
||||||
|
@ -466,11 +466,11 @@ In-Reply-To: <0>
|
||||||
References: <0>
|
References: <0>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'thread' '
|
test_expect_success PERL_TEST_HELPERS 'thread' '
|
||||||
check_threading expect.thread --thread main
|
check_threading expect.thread --thread main
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '--thread overrides format.thread=deep' '
|
test_expect_success PERL_TEST_HELPERS '--thread overrides format.thread=deep' '
|
||||||
test_config format.thread deep &&
|
test_config format.thread deep &&
|
||||||
check_threading expect.thread --thread main
|
check_threading expect.thread --thread main
|
||||||
'
|
'
|
||||||
|
@ -490,7 +490,7 @@ In-Reply-To: <1>
|
||||||
References: <1>
|
References: <1>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'thread in-reply-to' '
|
test_expect_success PERL_TEST_HELPERS 'thread in-reply-to' '
|
||||||
check_threading expect.in-reply-to --in-reply-to="<test.message>" \
|
check_threading expect.in-reply-to --in-reply-to="<test.message>" \
|
||||||
--thread main
|
--thread main
|
||||||
'
|
'
|
||||||
|
@ -512,7 +512,7 @@ In-Reply-To: <0>
|
||||||
References: <0>
|
References: <0>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'thread cover-letter' '
|
test_expect_success PERL_TEST_HELPERS 'thread cover-letter' '
|
||||||
check_threading expect.cover-letter --cover-letter --thread main
|
check_threading expect.cover-letter --cover-letter --thread main
|
||||||
'
|
'
|
||||||
|
|
||||||
|
@ -538,12 +538,12 @@ References: <1>
|
||||||
<0>
|
<0>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'thread cover-letter in-reply-to' '
|
test_expect_success PERL_TEST_HELPERS 'thread cover-letter in-reply-to' '
|
||||||
check_threading expect.cl-irt --cover-letter \
|
check_threading expect.cl-irt --cover-letter \
|
||||||
--in-reply-to="<test.message>" --thread main
|
--in-reply-to="<test.message>" --thread main
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'thread explicit shallow' '
|
test_expect_success PERL_TEST_HELPERS 'thread explicit shallow' '
|
||||||
check_threading expect.cl-irt --cover-letter \
|
check_threading expect.cl-irt --cover-letter \
|
||||||
--in-reply-to="<test.message>" --thread=shallow main
|
--in-reply-to="<test.message>" --thread=shallow main
|
||||||
'
|
'
|
||||||
|
@ -562,7 +562,7 @@ References: <0>
|
||||||
<1>
|
<1>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'thread deep' '
|
test_expect_success PERL_TEST_HELPERS 'thread deep' '
|
||||||
check_threading expect.deep --thread=deep main
|
check_threading expect.deep --thread=deep main
|
||||||
'
|
'
|
||||||
|
|
||||||
|
@ -584,7 +584,7 @@ References: <1>
|
||||||
<2>
|
<2>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'thread deep in-reply-to' '
|
test_expect_success PERL_TEST_HELPERS 'thread deep in-reply-to' '
|
||||||
check_threading expect.deep-irt --thread=deep \
|
check_threading expect.deep-irt --thread=deep \
|
||||||
--in-reply-to="<test.message>" main
|
--in-reply-to="<test.message>" main
|
||||||
'
|
'
|
||||||
|
@ -609,7 +609,7 @@ References: <0>
|
||||||
<2>
|
<2>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'thread deep cover-letter' '
|
test_expect_success PERL_TEST_HELPERS 'thread deep cover-letter' '
|
||||||
check_threading expect.deep-cl --cover-letter --thread=deep main
|
check_threading expect.deep-cl --cover-letter --thread=deep main
|
||||||
'
|
'
|
||||||
|
|
||||||
|
@ -638,27 +638,27 @@ References: <1>
|
||||||
<3>
|
<3>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'thread deep cover-letter in-reply-to' '
|
test_expect_success PERL_TEST_HELPERS 'thread deep cover-letter in-reply-to' '
|
||||||
check_threading expect.deep-cl-irt --cover-letter \
|
check_threading expect.deep-cl-irt --cover-letter \
|
||||||
--in-reply-to="<test.message>" --thread=deep main
|
--in-reply-to="<test.message>" --thread=deep main
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'thread via config' '
|
test_expect_success PERL_TEST_HELPERS 'thread via config' '
|
||||||
test_config format.thread true &&
|
test_config format.thread true &&
|
||||||
check_threading expect.thread main
|
check_threading expect.thread main
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'thread deep via config' '
|
test_expect_success PERL_TEST_HELPERS 'thread deep via config' '
|
||||||
test_config format.thread deep &&
|
test_config format.thread deep &&
|
||||||
check_threading expect.deep main
|
check_threading expect.deep main
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'thread config + override' '
|
test_expect_success PERL_TEST_HELPERS 'thread config + override' '
|
||||||
test_config format.thread deep &&
|
test_config format.thread deep &&
|
||||||
check_threading expect.thread --thread main
|
check_threading expect.thread --thread main
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'thread config + --no-thread' '
|
test_expect_success PERL_TEST_HELPERS 'thread config + --no-thread' '
|
||||||
test_config format.thread deep &&
|
test_config format.thread deep &&
|
||||||
check_threading expect.no-threading --no-thread main
|
check_threading expect.no-threading --no-thread main
|
||||||
'
|
'
|
||||||
|
|
|
@ -239,7 +239,7 @@ check_external_diff 128 empty error 2 on --quiet
|
||||||
|
|
||||||
echo NULZbetweenZwords | perl -pe 'y/Z/\000/' > file
|
echo NULZbetweenZwords | perl -pe 'y/Z/\000/' > file
|
||||||
|
|
||||||
test_expect_success 'force diff with "diff"' '
|
test_expect_success PERL_TEST_HELPERS 'force diff with "diff"' '
|
||||||
after=$(git hash-object file) &&
|
after=$(git hash-object file) &&
|
||||||
after=$(git rev-parse --short $after) &&
|
after=$(git rev-parse --short $after) &&
|
||||||
echo >.gitattributes "file diff" &&
|
echo >.gitattributes "file diff" &&
|
||||||
|
@ -300,7 +300,7 @@ test_expect_success 'external diff with autocrlf = true' '
|
||||||
test $(wc -l <crlfed.txt) = $(keep_only_cr <crlfed.txt | wc -c)
|
test $(wc -l <crlfed.txt) = $(keep_only_cr <crlfed.txt | wc -c)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'diff --cached' '
|
test_expect_success PERL_TEST_HELPERS 'diff --cached' '
|
||||||
test_config core.autocrlf true &&
|
test_config core.autocrlf true &&
|
||||||
git add file &&
|
git add file &&
|
||||||
git update-index --assume-unchanged file &&
|
git update-index --assume-unchanged file &&
|
||||||
|
|
|
@ -18,7 +18,7 @@ index 5f6a263..8cb8bae 100644
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
test_expect_success "$test_description" '
|
test_expect_success PERL_TEST_HELPERS "$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) &&
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='diff.*.textconv tests'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping diff textconv tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
find_diff() {
|
find_diff() {
|
||||||
sed '1,/^index /d' | sed '/^-- $/,$d'
|
sed '1,/^index /d' | sed '/^-- $/,$d'
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ test_expect_success 'setup textconv' '
|
||||||
git config diff.foo.textconv "\"$(pwd)\""/dump
|
git config diff.foo.textconv "\"$(pwd)\""/dump
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'rewrite diff respects textconv' '
|
test_expect_success PERL_TEST_HELPERS 'rewrite diff respects textconv' '
|
||||||
git diff -B >diff &&
|
git diff -B >diff &&
|
||||||
grep "dissimilarity index" diff &&
|
grep "dissimilarity index" diff &&
|
||||||
grep "^-61" diff &&
|
grep "^-61" diff &&
|
||||||
|
|
|
@ -13,6 +13,12 @@ test_description='test tree diff when trees have duplicate entries'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping diff duplicates tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
# make_tree_entry <mode> <mode> <sha1>
|
# make_tree_entry <mode> <mode> <sha1>
|
||||||
#
|
#
|
||||||
# We have to rely on perl here because not all printfs understand
|
# We have to rely on perl here because not all printfs understand
|
||||||
|
|
|
@ -11,6 +11,12 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping apply-binary tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success 'setup' '
|
test_expect_success 'setup' '
|
||||||
cat >file1 <<-\EOF &&
|
cat >file1 <<-\EOF &&
|
||||||
A quick brown fox jumps over the lazy dog.
|
A quick brown fox jumps over the lazy dog.
|
||||||
|
|
|
@ -10,6 +10,12 @@ test_description='git apply in reverse
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping apply reverse tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success setup '
|
test_expect_success setup '
|
||||||
|
|
||||||
test_write_lines a b c d e f g h i j k l m n >file1 &&
|
test_write_lines a b c d e f g h i j k l m n >file1 &&
|
||||||
|
|
|
@ -1073,7 +1073,7 @@ test_expect_success 'am --patch-format=mboxrd handles mboxrd' '
|
||||||
test_cmp msg out
|
test_cmp msg out
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'am works with multi-line in-body headers' '
|
test_expect_success PERL_TEST_HELPERS 'am works with multi-line in-body headers' '
|
||||||
FORTY="String that has a length of more than forty characters" &&
|
FORTY="String that has a length of more than forty characters" &&
|
||||||
LONG="$FORTY $FORTY" &&
|
LONG="$FORTY $FORTY" &&
|
||||||
rm -fr .git/rebase-apply &&
|
rm -fr .git/rebase-apply &&
|
||||||
|
|
|
@ -27,6 +27,12 @@ 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
|
||||||
|
|
|
@ -698,7 +698,7 @@ test_expect_success '%(trailers:only=no,only=true) shows only "key: value" trail
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '%(trailers:unfold) unfolds trailers' '
|
test_expect_success PERL_TEST_HELPERS '%(trailers:unfold) unfolds trailers' '
|
||||||
git log --no-walk --pretty="%(trailers:unfold)" >actual &&
|
git log --no-walk --pretty="%(trailers:unfold)" >actual &&
|
||||||
{
|
{
|
||||||
unfold <trailers &&
|
unfold <trailers &&
|
||||||
|
@ -707,7 +707,7 @@ test_expect_success '%(trailers:unfold) unfolds trailers' '
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success ':only and :unfold work together' '
|
test_expect_success PERL_TEST_HELPERS ':only and :unfold work together' '
|
||||||
git log --no-walk --pretty="%(trailers:only,unfold)" >actual &&
|
git log --no-walk --pretty="%(trailers:only,unfold)" >actual &&
|
||||||
git log --no-walk --pretty="%(trailers:unfold,only)" >reverse &&
|
git log --no-walk --pretty="%(trailers:unfold,only)" >reverse &&
|
||||||
test_cmp actual reverse &&
|
test_cmp actual reverse &&
|
||||||
|
@ -754,7 +754,7 @@ test_expect_success '%(trailers:key=foo) handles multiple lines even if folded'
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '%(trailers:key=foo,unfold) properly unfolds' '
|
test_expect_success PERL_TEST_HELPERS '%(trailers:key=foo,unfold) properly unfolds' '
|
||||||
git log --no-walk --pretty="format:%(trailers:key=Signed-Off-by,unfold)" >actual &&
|
git log --no-walk --pretty="format:%(trailers:key=Signed-Off-by,unfold)" >actual &&
|
||||||
unfold <trailers | grep Signed-off-by >expect &&
|
unfold <trailers | grep Signed-off-by >expect &&
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
|
|
|
@ -738,20 +738,20 @@ check_corrupt_graph () {
|
||||||
test_cmp expect.out out
|
test_cmp expect.out out
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'Bloom reader notices too-small data chunk' '
|
test_expect_success PERL_TEST_HELPERS 'Bloom reader notices too-small data chunk' '
|
||||||
check_corrupt_graph BDAT clear 00000000 &&
|
check_corrupt_graph BDAT clear 00000000 &&
|
||||||
echo "warning: ignoring too-small changed-path chunk" \
|
echo "warning: ignoring too-small changed-path chunk" \
|
||||||
"(4 < 12) in commit-graph file" >expect.err &&
|
"(4 < 12) in commit-graph file" >expect.err &&
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'Bloom reader notices out-of-bounds filter offsets' '
|
test_expect_success PERL_TEST_HELPERS 'Bloom reader notices out-of-bounds filter offsets' '
|
||||||
check_corrupt_graph BIDX 12 FFFFFFFF &&
|
check_corrupt_graph BIDX 12 FFFFFFFF &&
|
||||||
# use grep to avoid depending on exact chunk size
|
# use grep to avoid depending on exact chunk size
|
||||||
grep "warning: ignoring out-of-range offset (4294967295) for changed-path filter at pos 3 of .git/objects/info/commit-graph" err
|
grep "warning: ignoring out-of-range offset (4294967295) for changed-path filter at pos 3 of .git/objects/info/commit-graph" err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'Bloom reader notices too-small index chunk' '
|
test_expect_success PERL_TEST_HELPERS 'Bloom reader notices too-small index chunk' '
|
||||||
# replace the index with a single entry, making most
|
# replace the index with a single entry, making most
|
||||||
# lookups out-of-bounds
|
# lookups out-of-bounds
|
||||||
check_corrupt_graph BIDX clear 00000000 &&
|
check_corrupt_graph BIDX clear 00000000 &&
|
||||||
|
@ -760,7 +760,7 @@ test_expect_success 'Bloom reader notices too-small index chunk' '
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'Bloom reader notices out-of-order index offsets' '
|
test_expect_success PERL_TEST_HELPERS 'Bloom reader notices out-of-order index offsets' '
|
||||||
# we do not know any real offsets, but we can pick
|
# we do not know any real offsets, but we can pick
|
||||||
# something plausible; we should not get to the point of
|
# something plausible; we should not get to the point of
|
||||||
# actually reading from the bogus offsets anyway.
|
# actually reading from the bogus offsets anyway.
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='test corner cases of git-archive'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping archive corner cases tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
# the 10knuls.tar file is used to test for an empty git generated tar
|
# the 10knuls.tar file is used to test for an empty git generated tar
|
||||||
# without having to invoke tar because an otherwise valid empty GNU tar
|
# without having to invoke tar because an otherwise valid empty GNU tar
|
||||||
# will be considered broken by {Open,Net}BSD tar
|
# will be considered broken by {Open,Net}BSD tar
|
||||||
|
|
|
@ -7,6 +7,12 @@ test_description='git pack-object'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping pack-object tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success 'setup' '
|
test_expect_success 'setup' '
|
||||||
rm -f .git/index* &&
|
rm -f .git/index* &&
|
||||||
perl -e "print \"a\" x 4096;" >a &&
|
perl -e "print \"a\" x 4096;" >a &&
|
||||||
|
|
|
@ -99,7 +99,7 @@ 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 'create corruption in data of first object' '
|
test_expect_success PERL_TEST_HELPERS '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 &&
|
||||||
|
@ -156,7 +156,7 @@ 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 'create corruption in data of first delta' '
|
test_expect_success PERL_TEST_HELPERS '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 &&
|
||||||
|
|
|
@ -395,7 +395,7 @@ test_bitmap_cases () {
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'pack.preferBitmapTips' '
|
test_expect_success PERL_TEST_HELPERS 'pack.preferBitmapTips' '
|
||||||
git init repo &&
|
git init repo &&
|
||||||
test_when_finished "rm -fr repo" &&
|
test_when_finished "rm -fr repo" &&
|
||||||
(
|
(
|
||||||
|
|
|
@ -87,7 +87,7 @@ max_chain() {
|
||||||
# packing heuristics. We double-check that our test case
|
# packing heuristics. We double-check that our test case
|
||||||
# actually produces a long chain. If it doesn't, it should be
|
# actually produces a long chain. If it doesn't, it should be
|
||||||
# adjusted (or scrapped if the heuristics have become too unreliable)
|
# adjusted (or scrapped if the heuristics have become too unreliable)
|
||||||
test_expect_success 'packing produces a long delta' '
|
test_expect_success PERL_TEST_HELPERS 'packing produces a long delta' '
|
||||||
# Use --window=0 to make sure we are seeing reused deltas,
|
# Use --window=0 to make sure we are seeing reused deltas,
|
||||||
# not computing a new long chain.
|
# not computing a new long chain.
|
||||||
pack=$(git pack-objects --all --window=0 </dev/null pack) &&
|
pack=$(git pack-objects --all --window=0 </dev/null pack) &&
|
||||||
|
@ -96,21 +96,21 @@ test_expect_success 'packing produces a long delta' '
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '--depth limits depth' '
|
test_expect_success PERL_TEST_HELPERS '--depth limits depth' '
|
||||||
pack=$(git pack-objects --all --depth=5 </dev/null pack) &&
|
pack=$(git pack-objects --all --depth=5 </dev/null pack) &&
|
||||||
echo 5 >expect &&
|
echo 5 >expect &&
|
||||||
max_chain pack-$pack.pack >actual &&
|
max_chain pack-$pack.pack >actual &&
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '--depth=0 disables deltas' '
|
test_expect_success PERL_TEST_HELPERS '--depth=0 disables deltas' '
|
||||||
pack=$(git pack-objects --all --depth=0 </dev/null pack) &&
|
pack=$(git pack-objects --all --depth=0 </dev/null pack) &&
|
||||||
echo 0 >expect &&
|
echo 0 >expect &&
|
||||||
max_chain pack-$pack.pack >actual &&
|
max_chain pack-$pack.pack >actual &&
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'negative depth disables deltas' '
|
test_expect_success PERL_TEST_HELPERS 'negative depth disables deltas' '
|
||||||
pack=$(git pack-objects --all --depth=-1 </dev/null pack) &&
|
pack=$(git pack-objects --all --depth=-1 </dev/null pack) &&
|
||||||
echo 0 >expect &&
|
echo 0 >expect &&
|
||||||
max_chain pack-$pack.pack >actual &&
|
max_chain pack-$pack.pack >actual &&
|
||||||
|
|
|
@ -837,7 +837,7 @@ check_corrupt_chunk () {
|
||||||
test_cmp expect.out out
|
test_cmp expect.out out
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'reader notices too-small oid fanout chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices too-small oid fanout chunk' '
|
||||||
# make it big enough that the graph file is plausible,
|
# make it big enough that the graph file is plausible,
|
||||||
# otherwise we hit an earlier check
|
# otherwise we hit an earlier check
|
||||||
check_corrupt_chunk OIDF clear $(printf "000000%02x" $(test_seq 250)) &&
|
check_corrupt_chunk OIDF clear $(printf "000000%02x" $(test_seq 250)) &&
|
||||||
|
@ -848,7 +848,7 @@ test_expect_success 'reader notices too-small oid fanout chunk' '
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices fanout/lookup table mismatch' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices fanout/lookup table mismatch' '
|
||||||
check_corrupt_chunk OIDF 1020 "FFFFFFFF" &&
|
check_corrupt_chunk OIDF 1020 "FFFFFFFF" &&
|
||||||
cat >expect.err <<-\EOF &&
|
cat >expect.err <<-\EOF &&
|
||||||
error: commit-graph OID lookup chunk is the wrong size
|
error: commit-graph OID lookup chunk is the wrong size
|
||||||
|
@ -857,7 +857,7 @@ test_expect_success 'reader notices fanout/lookup table mismatch' '
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices out-of-bounds fanout' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices out-of-bounds fanout' '
|
||||||
# Rather than try to corrupt a specific hash, we will just
|
# Rather than try to corrupt a specific hash, we will just
|
||||||
# wreck them all. But we cannot just set them all to 0xFFFFFFFF or
|
# wreck them all. But we cannot just set them all to 0xFFFFFFFF or
|
||||||
# similar, as they are used for hi/lo starts in a binary search (so if
|
# similar, as they are used for hi/lo starts in a binary search (so if
|
||||||
|
@ -873,7 +873,7 @@ test_expect_success 'reader notices out-of-bounds fanout' '
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices too-small commit data chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices too-small commit data chunk' '
|
||||||
check_corrupt_chunk CDAT clear 00000000 &&
|
check_corrupt_chunk CDAT clear 00000000 &&
|
||||||
cat >expect.err <<-\EOF &&
|
cat >expect.err <<-\EOF &&
|
||||||
error: commit-graph commit data chunk is wrong size
|
error: commit-graph commit data chunk is wrong size
|
||||||
|
@ -882,7 +882,7 @@ test_expect_success 'reader notices too-small commit data chunk' '
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices out-of-bounds extra edge' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices out-of-bounds extra edge' '
|
||||||
check_corrupt_chunk EDGE clear &&
|
check_corrupt_chunk EDGE clear &&
|
||||||
cat >expect.err <<-\EOF &&
|
cat >expect.err <<-\EOF &&
|
||||||
error: commit-graph extra-edges pointer out of bounds
|
error: commit-graph extra-edges pointer out of bounds
|
||||||
|
@ -890,7 +890,7 @@ test_expect_success 'reader notices out-of-bounds extra edge' '
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices too-small generations chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices too-small generations chunk' '
|
||||||
check_corrupt_chunk GDA2 clear 00000000 &&
|
check_corrupt_chunk GDA2 clear 00000000 &&
|
||||||
cat >expect.err <<-\EOF &&
|
cat >expect.err <<-\EOF &&
|
||||||
error: commit-graph generations chunk is wrong size
|
error: commit-graph generations chunk is wrong size
|
||||||
|
|
|
@ -1120,7 +1120,7 @@ corrupt_chunk () {
|
||||||
corrupt_chunk_file $midx "$@"
|
corrupt_chunk_file $midx "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'reader notices too-small oid fanout chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices too-small oid fanout chunk' '
|
||||||
corrupt_chunk OIDF clear 00000000 &&
|
corrupt_chunk OIDF clear 00000000 &&
|
||||||
test_must_fail git log 2>err &&
|
test_must_fail git log 2>err &&
|
||||||
cat >expect <<-\EOF &&
|
cat >expect <<-\EOF &&
|
||||||
|
@ -1130,7 +1130,7 @@ test_expect_success 'reader notices too-small oid fanout chunk' '
|
||||||
test_cmp expect err
|
test_cmp expect err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices too-small oid lookup chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices too-small oid lookup chunk' '
|
||||||
corrupt_chunk OIDL clear 00000000 &&
|
corrupt_chunk OIDL clear 00000000 &&
|
||||||
test_must_fail git log 2>err &&
|
test_must_fail git log 2>err &&
|
||||||
cat >expect <<-\EOF &&
|
cat >expect <<-\EOF &&
|
||||||
|
@ -1140,7 +1140,7 @@ test_expect_success 'reader notices too-small oid lookup chunk' '
|
||||||
test_cmp expect err
|
test_cmp expect err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices too-small pack names chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices too-small pack names chunk' '
|
||||||
# There is no NUL to terminate the name here, so the
|
# There is no NUL to terminate the name here, so the
|
||||||
# chunk is too short.
|
# chunk is too short.
|
||||||
corrupt_chunk PNAM clear 70656666 &&
|
corrupt_chunk PNAM clear 70656666 &&
|
||||||
|
@ -1151,7 +1151,7 @@ test_expect_success 'reader notices too-small pack names chunk' '
|
||||||
test_cmp expect err
|
test_cmp expect err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader handles unaligned chunks' '
|
test_expect_success PERL_TEST_HELPERS 'reader handles unaligned chunks' '
|
||||||
# A 9-byte PNAM means all of the subsequent chunks
|
# A 9-byte PNAM means all of the subsequent chunks
|
||||||
# will no longer be 4-byte aligned, but it is still
|
# will no longer be 4-byte aligned, but it is still
|
||||||
# a valid one-pack chunk on its own (it is "foo.pack\0").
|
# a valid one-pack chunk on its own (it is "foo.pack\0").
|
||||||
|
@ -1165,7 +1165,7 @@ test_expect_success 'reader handles unaligned chunks' '
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices too-small object offset chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices too-small object offset chunk' '
|
||||||
corrupt_chunk OOFF clear 00000000 &&
|
corrupt_chunk OOFF clear 00000000 &&
|
||||||
test_must_fail git log 2>err &&
|
test_must_fail git log 2>err &&
|
||||||
cat >expect <<-\EOF &&
|
cat >expect <<-\EOF &&
|
||||||
|
@ -1175,7 +1175,7 @@ test_expect_success 'reader notices too-small object offset chunk' '
|
||||||
test_cmp expect err
|
test_cmp expect err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader bounds-checks large offset table' '
|
test_expect_success PERL_TEST_HELPERS 'reader bounds-checks large offset table' '
|
||||||
# re-use the objects64 dir here to cheaply get access to a midx
|
# re-use the objects64 dir here to cheaply get access to a midx
|
||||||
# with large offsets.
|
# with large offsets.
|
||||||
git init repo &&
|
git init repo &&
|
||||||
|
@ -1197,7 +1197,7 @@ test_expect_success 'reader bounds-checks large offset table' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices too-small revindex chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices too-small revindex chunk' '
|
||||||
# We only get a revindex with bitmaps (and likewise only
|
# We only get a revindex with bitmaps (and likewise only
|
||||||
# load it when they are asked for).
|
# load it when they are asked for).
|
||||||
test_config repack.writeBitmaps true &&
|
test_config repack.writeBitmaps true &&
|
||||||
|
@ -1214,7 +1214,7 @@ test_expect_success 'reader notices too-small revindex chunk' '
|
||||||
test_cmp expect.err err
|
test_cmp expect.err err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices out-of-bounds fanout' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices out-of-bounds fanout' '
|
||||||
# This is similar to the out-of-bounds fanout test in t5318. The values
|
# This is similar to the out-of-bounds fanout test in t5318. The values
|
||||||
# in adjacent entries should be large but not identical (they
|
# in adjacent entries should be large but not identical (they
|
||||||
# are used as hi/lo starts for a binary search, which would then abort
|
# are used as hi/lo starts for a binary search, which would then abort
|
||||||
|
|
|
@ -401,7 +401,7 @@ test_expect_success 'verify across alternates' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader bounds-checks base-graph chunk' '
|
test_expect_success PERL_TEST_HELPERS 'reader bounds-checks base-graph chunk' '
|
||||||
git clone --no-hardlinks . corrupt-base-chunk &&
|
git clone --no-hardlinks . corrupt-base-chunk &&
|
||||||
(
|
(
|
||||||
cd corrupt-base-chunk &&
|
cd corrupt-base-chunk &&
|
||||||
|
|
|
@ -153,7 +153,7 @@ test_midx_bitmap_cases () {
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'pack.preferBitmapTips' '
|
test_expect_success PERL_TEST_HELPERS 'pack.preferBitmapTips' '
|
||||||
git init repo &&
|
git init repo &&
|
||||||
test_when_finished "rm -fr repo" &&
|
test_when_finished "rm -fr repo" &&
|
||||||
(
|
(
|
||||||
|
|
|
@ -74,7 +74,7 @@ test_expect_success 'single commit with generation data exceeding UINT32_MAX' '
|
||||||
git -C repo-uint32-max commit-graph verify
|
git -C repo-uint32-max commit-graph verify
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reader notices out-of-bounds generation overflow' '
|
test_expect_success PERL_TEST_HELPERS 'reader notices out-of-bounds generation overflow' '
|
||||||
graph=.git/objects/info/commit-graph &&
|
graph=.git/objects/info/commit-graph &&
|
||||||
test_when_finished "rm -rf $graph" &&
|
test_when_finished "rm -rf $graph" &&
|
||||||
git commit-graph write --reachable &&
|
git commit-graph write --reachable &&
|
||||||
|
|
|
@ -6,6 +6,12 @@ GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping pseudo-merge bitmap tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_pseudo_merges () {
|
test_pseudo_merges () {
|
||||||
test-tool bitmap dump-pseudo-merges
|
test-tool bitmap dump-pseudo-merges
|
||||||
}
|
}
|
||||||
|
|
|
@ -268,7 +268,7 @@ extract_ref_advertisement () {
|
||||||
'
|
'
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'receive-pack de-dupes .have lines' '
|
test_expect_success PERL_TEST_HELPERS 'receive-pack de-dupes .have lines' '
|
||||||
git init shared &&
|
git init shared &&
|
||||||
git -C shared commit --allow-empty -m both &&
|
git -C shared commit --allow-empty -m both &&
|
||||||
git clone -s shared fork &&
|
git clone -s shared fork &&
|
||||||
|
|
|
@ -20,7 +20,7 @@ extract_haves () {
|
||||||
depacketize | perl -lne '/^(\S+) \.have/ and print $1'
|
depacketize | perl -lne '/^(\S+) \.have/ and print $1'
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'with core.alternateRefsCommand' '
|
test_expect_success PERL_TEST_HELPERS 'with core.alternateRefsCommand' '
|
||||||
write_script fork/alternate-refs <<-\EOF &&
|
write_script fork/alternate-refs <<-\EOF &&
|
||||||
git --git-dir="$1" for-each-ref \
|
git --git-dir="$1" for-each-ref \
|
||||||
--format="%(objectname)" \
|
--format="%(objectname)" \
|
||||||
|
@ -33,7 +33,7 @@ test_expect_success 'with core.alternateRefsCommand' '
|
||||||
test_cmp expect actual.haves
|
test_cmp expect actual.haves
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'with core.alternateRefsPrefixes' '
|
test_expect_success PERL_TEST_HELPERS 'with core.alternateRefsPrefixes' '
|
||||||
test_config -C fork core.alternateRefsPrefixes "refs/heads/private" &&
|
test_config -C fork core.alternateRefsPrefixes "refs/heads/private" &&
|
||||||
git rev-parse private/branch >expect &&
|
git rev-parse private/branch >expect &&
|
||||||
printf "0000" | git receive-pack fork >actual &&
|
printf "0000" | git receive-pack fork >actual &&
|
||||||
|
|
|
@ -7,6 +7,12 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping tagfollow tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
# End state of the repository:
|
# End state of the repository:
|
||||||
#
|
#
|
||||||
# T - tag1 S - tag2
|
# T - tag1 S - tag2
|
||||||
|
|
|
@ -359,7 +359,7 @@ test_expect_success \
|
||||||
grep "Cannot demote unterminatedheader" act
|
grep "Cannot demote unterminatedheader" act
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'badFilemode is not a strict error' '
|
test_expect_success PERL_TEST_HELPERS 'badFilemode is not a strict error' '
|
||||||
git init --bare badmode.git &&
|
git init --bare badmode.git &&
|
||||||
tree=$(
|
tree=$(
|
||||||
cd badmode.git &&
|
cd badmode.git &&
|
||||||
|
|
|
@ -8,6 +8,12 @@ test_description='Per branch config variables affects "git fetch".
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
. "$TEST_DIRECTORY"/lib-bundle.sh
|
. "$TEST_DIRECTORY"/lib-bundle.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping fetch tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
D=$(pwd)
|
D=$(pwd)
|
||||||
|
|
||||||
test_expect_success setup '
|
test_expect_success setup '
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='fetching via git:// using core.gitproxy'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping fetch proxy tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success 'setup remote repo' '
|
test_expect_success 'setup remote repo' '
|
||||||
git init remote &&
|
git init remote &&
|
||||||
(cd remote &&
|
(cd remote &&
|
||||||
|
|
|
@ -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 'inconsistent push options in signed push not allowed' '
|
test_expect_success GPG,PERL_TEST_HELPERS '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 &&
|
||||||
|
|
|
@ -256,7 +256,7 @@ start_httpd
|
||||||
|
|
||||||
REPO="$HTTPD_DOCUMENT_ROOT_PATH/repo"
|
REPO="$HTTPD_DOCUMENT_ROOT_PATH/repo"
|
||||||
|
|
||||||
test_expect_success 'shallow fetches check connectivity before writing shallow file' '
|
test_expect_success PERL_TEST_HELPERS 'shallow fetches check connectivity before writing shallow file' '
|
||||||
rm -rf "$REPO" client &&
|
rm -rf "$REPO" client &&
|
||||||
|
|
||||||
git init "$REPO" &&
|
git init "$REPO" &&
|
||||||
|
|
|
@ -7,6 +7,13 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
. "$TEST_DIRECTORY"/lib-httpd.sh
|
. "$TEST_DIRECTORY"/lib-httpd.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping http fetch smart tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test "$HTTP_PROTO" = "HTTP/2" && enable_http2
|
test "$HTTP_PROTO" = "HTTP/2" && enable_http2
|
||||||
start_httpd
|
start_httpd
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='test git-http-backend respects CONTENT_LENGTH'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping http backend content tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_lazy_prereq GZIP 'gzip --version'
|
test_lazy_prereq GZIP 'gzip --version'
|
||||||
|
|
||||||
verify_http_result() {
|
verify_http_result() {
|
||||||
|
|
|
@ -649,7 +649,7 @@ test_expect_success 'GIT_TRACE_PACKFILE produces a usable pack' '
|
||||||
git -C replay.git index-pack -v --stdin <tmp.pack
|
git -C replay.git index-pack -v --stdin <tmp.pack
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'clone on case-insensitive fs' '
|
test_expect_success PERL_TEST_HELPERS 'clone on case-insensitive fs' '
|
||||||
git init icasefs &&
|
git init icasefs &&
|
||||||
(
|
(
|
||||||
cd icasefs &&
|
cd icasefs &&
|
||||||
|
@ -662,7 +662,7 @@ test_expect_success 'clone on case-insensitive fs' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success CASE_INSENSITIVE_FS 'colliding file detection' '
|
test_expect_success PERL_TEST_HELPERS,CASE_INSENSITIVE_FS 'colliding file detection' '
|
||||||
grep X icasefs/warning &&
|
grep X icasefs/warning &&
|
||||||
grep x icasefs/warning &&
|
grep x icasefs/warning &&
|
||||||
test_grep "the following paths have collided" icasefs/warning
|
test_grep "the following paths have collided" icasefs/warning
|
||||||
|
|
|
@ -751,7 +751,7 @@ replace_packfile () {
|
||||||
}' >"$HTTPD_ROOT_PATH/one-time-perl"
|
}' >"$HTTPD_ROOT_PATH/one-time-perl"
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'upon cloning, check that all refs point to objects' '
|
test_expect_success PERL_TEST_HELPERS 'upon cloning, check that all refs point to objects' '
|
||||||
SERVER="$HTTPD_DOCUMENT_ROOT_PATH/server" &&
|
SERVER="$HTTPD_DOCUMENT_ROOT_PATH/server" &&
|
||||||
rm -rf "$SERVER" repo &&
|
rm -rf "$SERVER" repo &&
|
||||||
test_create_repo "$SERVER" &&
|
test_create_repo "$SERVER" &&
|
||||||
|
@ -784,7 +784,7 @@ test_expect_success 'upon cloning, check that all refs point to objects' '
|
||||||
! test -e "$HTTPD_ROOT_PATH/one-time-perl"
|
! test -e "$HTTPD_ROOT_PATH/one-time-perl"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'when partial cloning, tolerate server not sending target of tag' '
|
test_expect_success PERL_TEST_HELPERS 'when partial cloning, tolerate server not sending target of tag' '
|
||||||
SERVER="$HTTPD_DOCUMENT_ROOT_PATH/server" &&
|
SERVER="$HTTPD_DOCUMENT_ROOT_PATH/server" &&
|
||||||
rm -rf "$SERVER" repo &&
|
rm -rf "$SERVER" repo &&
|
||||||
test_create_repo "$SERVER" &&
|
test_create_repo "$SERVER" &&
|
||||||
|
@ -825,7 +825,7 @@ test_expect_success 'when partial cloning, tolerate server not sending target of
|
||||||
! test -e "$HTTPD_ROOT_PATH/one-time-perl"
|
! test -e "$HTTPD_ROOT_PATH/one-time-perl"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'tolerate server sending REF_DELTA against missing promisor objects' '
|
test_expect_success PERL_TEST_HELPERS 'tolerate server sending REF_DELTA against missing promisor objects' '
|
||||||
SERVER="$HTTPD_DOCUMENT_ROOT_PATH/server" &&
|
SERVER="$HTTPD_DOCUMENT_ROOT_PATH/server" &&
|
||||||
rm -rf "$SERVER" repo &&
|
rm -rf "$SERVER" repo &&
|
||||||
test_create_repo "$SERVER" &&
|
test_create_repo "$SERVER" &&
|
||||||
|
|
|
@ -220,7 +220,7 @@ test_expect_success 'refs/heads prefix' '
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'ignore very large set of prefixes' '
|
test_expect_success PERL_TEST_HELPERS 'ignore very large set of prefixes' '
|
||||||
# generate a large number of ref-prefixes that we expect
|
# generate a large number of ref-prefixes that we expect
|
||||||
# to match nothing; the value here exceeds TOO_MANY_PREFIXES
|
# to match nothing; the value here exceeds TOO_MANY_PREFIXES
|
||||||
# from ls-refs.c.
|
# from ls-refs.c.
|
||||||
|
|
|
@ -1120,7 +1120,7 @@ test_expect_success 'push with http:// and a config of v2 does not request v2' '
|
||||||
! grep "git< version 2" log
|
! grep "git< version 2" log
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'when server sends "ready", expect DELIM' '
|
test_expect_success PERL_TEST_HELPERS 'when server sends "ready", expect DELIM' '
|
||||||
rm -rf "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" http_child &&
|
rm -rf "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" http_child &&
|
||||||
|
|
||||||
git init "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" &&
|
git init "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" &&
|
||||||
|
@ -1140,7 +1140,7 @@ test_expect_success 'when server sends "ready", expect DELIM' '
|
||||||
test_grep "expected packfile to be sent after .ready." err
|
test_grep "expected packfile to be sent after .ready." err
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'when server does not send "ready", expect FLUSH' '
|
test_expect_success PERL_TEST_HELPERS 'when server does not send "ready", expect FLUSH' '
|
||||||
rm -rf "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" http_child log &&
|
rm -rf "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" http_child log &&
|
||||||
|
|
||||||
git init "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" &&
|
git init "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" &&
|
||||||
|
@ -1446,7 +1446,7 @@ test_expect_success 'http:// --negotiate-only' '
|
||||||
grep "$COMMON" out
|
grep "$COMMON" out
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'http:// --negotiate-only without wait-for-done support' '
|
test_expect_success PERL_TEST_HELPERS 'http:// --negotiate-only without wait-for-done support' '
|
||||||
SERVER="server" &&
|
SERVER="server" &&
|
||||||
URI="$HTTPD_URL/one_time_perl/server" &&
|
URI="$HTTPD_URL/one_time_perl/server" &&
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='upload-pack ref-in-want'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping upload-pack ref-in-want tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
get_actual_refs () {
|
get_actual_refs () {
|
||||||
sed -n -e '/wanted-refs/,/0001/{
|
sed -n -e '/wanted-refs/,/0001/{
|
||||||
/wanted-refs/d
|
/wanted-refs/d
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='handling of promisor remote advertisement'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping promisor remote capabilities tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
GIT_TEST_MULTI_PACK_INDEX=0
|
GIT_TEST_MULTI_PACK_INDEX=0
|
||||||
GIT_TEST_MULTI_PACK_INDEX_WRITE_INCREMENTAL=0
|
GIT_TEST_MULTI_PACK_INDEX_WRITE_INCREMENTAL=0
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,12 @@ test_description='Tests git rev-list --bisect functionality'
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
. "$TEST_DIRECTORY"/lib-t6000.sh # t6xxx specific functions
|
. "$TEST_DIRECTORY"/lib-t6000.sh # t6xxx specific functions
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping rev-list bisect tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
# usage: test_bisection max-diff bisect-option head ^prune...
|
# usage: test_bisection max-diff bisect-option head ^prune...
|
||||||
#
|
#
|
||||||
# e.g. test_bisection 1 --bisect l1 ^l0
|
# e.g. test_bisection 1 --bisect l1 ^l0
|
||||||
|
|
|
@ -8,6 +8,12 @@ test_description='Tests git rev-list --topo-order functionality'
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
. "$TEST_DIRECTORY"/lib-t6000.sh # t6xxx specific functions
|
. "$TEST_DIRECTORY"/lib-t6000.sh # t6xxx specific functions
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping rev-list topo-order tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
list_duplicates()
|
list_duplicates()
|
||||||
{
|
{
|
||||||
"$@" | sort | uniq -d
|
"$@" | sort | uniq -d
|
||||||
|
|
|
@ -4,6 +4,12 @@ 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
|
||||||
|
|
|
@ -26,7 +26,7 @@ test_expect_success 'set up --reverse example' '
|
||||||
commit five
|
commit five
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '--reverse --parents --full-history combines correctly' '
|
test_expect_success PERL_TEST_HELPERS '--reverse --parents --full-history combines correctly' '
|
||||||
git rev-list --parents --full-history main -- foo |
|
git rev-list --parents --full-history main -- foo |
|
||||||
perl -e "print reverse <>" > expected &&
|
perl -e "print reverse <>" > expected &&
|
||||||
git rev-list --reverse --parents --full-history main -- foo \
|
git rev-list --reverse --parents --full-history main -- foo \
|
||||||
|
@ -34,7 +34,7 @@ test_expect_success '--reverse --parents --full-history combines correctly' '
|
||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '--boundary does too' '
|
test_expect_success PERL_TEST_HELPERS '--boundary does too' '
|
||||||
git rev-list --boundary --parents --full-history main ^root -- foo |
|
git rev-list --boundary --parents --full-history main ^root -- foo |
|
||||||
perl -e "print reverse <>" > expected &&
|
perl -e "print reverse <>" > expected &&
|
||||||
git rev-list --boundary --reverse --parents --full-history \
|
git rev-list --boundary --reverse --parents --full-history \
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='git rev-list should handle unexpected object types'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping rev-list unexpected objects tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success 'setup well-formed objects' '
|
test_expect_success 'setup well-formed objects' '
|
||||||
blob="$(printf "foo" | git hash-object -w --stdin)" &&
|
blob="$(printf "foo" | git hash-object -w --stdin)" &&
|
||||||
tree="$(printf "100644 blob $blob\tfoo" | git mktree)" &&
|
tree="$(printf "100644 blob $blob\tfoo" | git mktree)" &&
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='basic tests of rev-list --disk-usage'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping rev-list disk usage tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
# we want a mix of reachable and unreachable, as well as
|
# we want a mix of reachable and unreachable, as well as
|
||||||
# objects in the bitmapped pack and some outside of it
|
# objects in the bitmapped pack and some outside of it
|
||||||
test_expect_success 'set up repository' '
|
test_expect_success 'set up repository' '
|
||||||
|
|
|
@ -10,6 +10,12 @@ GNUPGHOME_NOT_USED=$GNUPGHOME
|
||||||
. "$TEST_DIRECTORY"/lib-gpg.sh
|
. "$TEST_DIRECTORY"/lib-gpg.sh
|
||||||
. "$TEST_DIRECTORY"/lib-terminal.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
|
# Mon Jul 3 23:18:43 2006 +0000
|
||||||
datestamp=1151968723
|
datestamp=1151968723
|
||||||
setdate_and_increment () {
|
setdate_and_increment () {
|
||||||
|
|
|
@ -661,7 +661,7 @@ test_expect_success 'setup trace2' '
|
||||||
export GIT_TRACE2_BRIEF
|
export GIT_TRACE2_BRIEF
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'setup large log output' '
|
test_expect_success PERL_TEST_HELPERS 'setup large log output' '
|
||||||
perl -e "
|
perl -e "
|
||||||
print \"this is a long commit message\" x 50000
|
print \"this is a long commit message\" x 50000
|
||||||
" >commit-msg &&
|
" >commit-msg &&
|
||||||
|
|
|
@ -4,6 +4,12 @@ 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
|
||||||
'
|
'
|
||||||
|
|
|
@ -1064,7 +1064,7 @@ test_expect_success 'status -s submodule summary (clean submodule)' '
|
||||||
test_cmp expect output
|
test_cmp expect output
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'status -z implies porcelain' '
|
test_expect_success PERL_TEST_HELPERS 'status -z implies porcelain' '
|
||||||
git status --porcelain |
|
git status --porcelain |
|
||||||
perl -pe "s/\012/\000/g" >expect &&
|
perl -pe "s/\012/\000/g" >expect &&
|
||||||
git status -z >output &&
|
git status -z >output &&
|
||||||
|
|
|
@ -4,6 +4,12 @@ test_description='git grep in binary files'
|
||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq PERL_TEST_HELPERS
|
||||||
|
then
|
||||||
|
skip_all='skipping grep binary tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success 'setup' "
|
test_expect_success 'setup' "
|
||||||
echo 'binaryQfileQm[*]cQ*æQð' | q_to_nul >a &&
|
echo 'binaryQfileQm[*]cQ*æQð' | q_to_nul >a &&
|
||||||
git add a &&
|
git add a &&
|
||||||
|
|
|
@ -7,6 +7,12 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||||
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 annotate tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
PROG='git annotate'
|
PROG='git annotate'
|
||||||
. "$TEST_DIRECTORY"/annotate-tests.sh
|
. "$TEST_DIRECTORY"/annotate-tests.sh
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,12 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||||
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 blame colors tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
PROG='git blame -c'
|
PROG='git blame -c'
|
||||||
. "$TEST_DIRECTORY"/annotate-tests.sh
|
. "$TEST_DIRECTORY"/annotate-tests.sh
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,12 @@ 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/^[^(]*//'
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,7 +81,7 @@ do
|
||||||
git blame --root -C --$output combined >output
|
git blame --root -C --$output combined >output
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success "$output output finds correct commits" '
|
test_expect_success PERL_TEST_HELPERS "$output output finds correct commits" '
|
||||||
generate_expect >expect <<-\EOF &&
|
generate_expect >expect <<-\EOF &&
|
||||||
5 base
|
5 base
|
||||||
1 modified
|
1 modified
|
||||||
|
@ -93,7 +93,7 @@ do
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success "$output output shows correct filenames" '
|
test_expect_success PERL_TEST_HELPERS "$output output shows correct filenames" '
|
||||||
generate_expect >expect <<-\EOF &&
|
generate_expect >expect <<-\EOF &&
|
||||||
11 one
|
11 one
|
||||||
11 two
|
11 two
|
||||||
|
@ -102,7 +102,7 @@ do
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success "$output output shows correct previous pointer" '
|
test_expect_success PERL_TEST_HELPERS "$output output shows correct previous pointer" '
|
||||||
generate_expect >expect <<-EOF &&
|
generate_expect >expect <<-EOF &&
|
||||||
5 NONE
|
5 NONE
|
||||||
1 $(git rev-parse modified^) one
|
1 $(git rev-parse modified^) one
|
||||||
|
|
|
@ -7,6 +7,12 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||||
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 blame colors tests; Perl not available'
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
PROG='git blame -c'
|
PROG='git blame -c'
|
||||||
. "$TEST_DIRECTORY"/annotate-tests.sh
|
. "$TEST_DIRECTORY"/annotate-tests.sh
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ test_expect_success 'initialize repo' '
|
||||||
test -e file
|
test -e file
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '(supposedly) non-conflicting change from SVN' '
|
test_expect_success PERL_TEST_HELPERS '(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 &&
|
||||||
|
@ -37,7 +37,7 @@ test_expect_success 'some unrelated changes to git' "
|
||||||
git commit -m bye-life life
|
git commit -m bye-life life
|
||||||
"
|
"
|
||||||
|
|
||||||
test_expect_success 'change file but in unrelated area' "
|
test_expect_success PERL_TEST_HELPERS '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 &&
|
perl -i.bak -p -e 's/^4\$/4444/' file &&
|
||||||
|
|
|
@ -610,7 +610,7 @@ test_expect_success 'directory becomes symlink' '
|
||||||
(cd result && git show main:foo)
|
(cd result && git show main:foo)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'fast-export quotes pathnames' '
|
test_expect_success PERL_TEST_HELPERS 'fast-export quotes pathnames' '
|
||||||
git init crazy-paths &&
|
git init crazy-paths &&
|
||||||
test_config -C crazy-paths core.protectNTFS false &&
|
test_config -C crazy-paths core.protectNTFS false &&
|
||||||
(cd crazy-paths &&
|
(cd crazy-paths &&
|
||||||
|
|
|
@ -29,7 +29,7 @@ test_expect_success 'shell allows interactive command' '
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'shell complains of overlong commands' '
|
test_expect_success PERL_TEST_HELPERS 'shell complains of overlong commands' '
|
||||||
perl -e "print \"a\" x 2**12 for (0..2**19)" |
|
perl -e "print \"a\" x 2**12 for (0..2**19)" |
|
||||||
test_must_fail git shell 2>err &&
|
test_must_fail git shell 2>err &&
|
||||||
grep "too long" err
|
grep "too long" err
|
||||||
|
|
|
@ -1706,6 +1706,7 @@ test -n "$USE_LIBPCRE2" && test_set_prereq LIBPCRE2
|
||||||
test -z "$NO_GETTEXT" && test_set_prereq GETTEXT
|
test -z "$NO_GETTEXT" && test_set_prereq GETTEXT
|
||||||
test -n "$SANITIZE_LEAK" && test_set_prereq SANITIZE_LEAK
|
test -n "$SANITIZE_LEAK" && test_set_prereq SANITIZE_LEAK
|
||||||
test -n "$GIT_VALGRIND_ENABLED" && test_set_prereq VALGRIND
|
test -n "$GIT_VALGRIND_ENABLED" && test_set_prereq VALGRIND
|
||||||
|
test -n "$PERL_PATH" && test_set_prereq PERL_TEST_HELPERS
|
||||||
|
|
||||||
if test -z "$GIT_TEST_CHECK_CACHE_TREE"
|
if test -z "$GIT_TEST_CHECK_CACHE_TREE"
|
||||||
then
|
then
|
||||||
|
|
Loading…
Reference in New Issue