tests: change "mkdir -p && write_script" to use "test_hook"
Change tests that used a "mkdir -p .git/hooks && write_script" pattern to use the new "test_hook" helper instead. The new helper does not create the .git/hooks directory, rather we assume that the default template will do so for us. An upcoming series[1] will extend "test_hook" to operate in a "--template=" mode, but for now assuming that we have a .git/hooks already is a safe assumption. If that assumption becomes false in the future we'll only need to change 'test_hook", instead of all of these callsites. 1. https://lore.kernel.org/git/cover-00.13-00000000000-20211212T201308Z-avarab@gmail.com/ Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
60a8a6bf6c
commit
bef805b7d8
|
@ -12,8 +12,7 @@ then
|
|||
fi
|
||||
|
||||
test_expect_success 'setup' '
|
||||
mkdir -p "$TRASH_DIRECTORY/.git/hooks" &&
|
||||
write_script "$TRASH_DIRECTORY/.git/hooks/pre-commit" <<-\EOF
|
||||
test_hook --setup pre-commit <<-\EOF
|
||||
echo $HOBBES >&2
|
||||
EOF
|
||||
'
|
||||
|
|
|
@ -6,11 +6,11 @@ test_description='Test the core.hooksPath configuration variable'
|
|||
|
||||
test_expect_success 'set up a pre-commit hook in core.hooksPath' '
|
||||
>actual &&
|
||||
mkdir -p .git/custom-hooks .git/hooks &&
|
||||
mkdir -p .git/custom-hooks &&
|
||||
write_script .git/custom-hooks/pre-commit <<-\EOF &&
|
||||
echo CUSTOM >>actual
|
||||
EOF
|
||||
write_script .git/hooks/pre-commit <<-\EOF
|
||||
test_hook --setup pre-commit <<-\EOF
|
||||
echo NORMAL >>actual
|
||||
EOF
|
||||
'
|
||||
|
|
|
@ -619,9 +619,7 @@ test_expect_success 'rebase a detached HEAD' '
|
|||
'
|
||||
|
||||
test_expect_success 'rebase a commit violating pre-commit' '
|
||||
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/pre-commit <<-\EOF &&
|
||||
test_hook pre-commit <<-\EOF &&
|
||||
test -z "$(git diff --cached --check)"
|
||||
EOF
|
||||
echo "monde! " >> file1 &&
|
||||
|
@ -636,8 +634,6 @@ test_expect_success 'rebase a commit violating pre-commit' '
|
|||
'
|
||||
|
||||
test_expect_success 'rebase with a file named HEAD in worktree' '
|
||||
|
||||
rm -fr .git/hooks &&
|
||||
git reset --hard &&
|
||||
git checkout -b branch3 A &&
|
||||
|
||||
|
@ -1688,10 +1684,8 @@ test_expect_success 'valid author header when author contains single quote' '
|
|||
'
|
||||
|
||||
test_expect_success 'post-commit hook is called' '
|
||||
test_when_finished "rm -f .git/hooks/post-commit" &&
|
||||
>actual &&
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/post-commit <<-\EOS &&
|
||||
test_hook post-commit <<-\EOS &&
|
||||
git rev-parse HEAD >>actual
|
||||
EOS
|
||||
(
|
||||
|
|
|
@ -292,9 +292,9 @@ test_expect_success 'post-rewrite hook and fixups work for merges' '
|
|||
git commit --fixup HEAD same2.t &&
|
||||
fixup="$(git rev-parse HEAD)" &&
|
||||
|
||||
mkdir -p .git/hooks &&
|
||||
test_when_finished "rm .git/hooks/post-rewrite" &&
|
||||
echo "cat >actual" | write_script .git/hooks/post-rewrite &&
|
||||
test_hook post-rewrite <<-\EOF &&
|
||||
cat >actual
|
||||
EOF
|
||||
|
||||
test_tick &&
|
||||
git rebase -i --autosquash -r HEAD^^^ &&
|
||||
|
|
|
@ -315,12 +315,10 @@ test_expect_success 'am --patch-format=hg applies hg patch' '
|
|||
'
|
||||
|
||||
test_expect_success 'am with applypatch-msg hook' '
|
||||
test_when_finished "rm -f .git/hooks/applypatch-msg" &&
|
||||
rm -fr .git/rebase-apply &&
|
||||
git reset --hard &&
|
||||
git checkout first &&
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/applypatch-msg <<-\EOF &&
|
||||
test_hook applypatch-msg <<-\EOF &&
|
||||
cat "$1" >actual-msg &&
|
||||
echo hook-message >"$1"
|
||||
EOF
|
||||
|
@ -335,12 +333,10 @@ test_expect_success 'am with applypatch-msg hook' '
|
|||
'
|
||||
|
||||
test_expect_success 'am with failing applypatch-msg hook' '
|
||||
test_when_finished "rm -f .git/hooks/applypatch-msg" &&
|
||||
rm -fr .git/rebase-apply &&
|
||||
git reset --hard &&
|
||||
git checkout first &&
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/applypatch-msg <<-\EOF &&
|
||||
test_hook applypatch-msg <<-\EOF &&
|
||||
exit 1
|
||||
EOF
|
||||
test_must_fail git am patch1 &&
|
||||
|
@ -350,12 +346,10 @@ test_expect_success 'am with failing applypatch-msg hook' '
|
|||
'
|
||||
|
||||
test_expect_success 'am with pre-applypatch hook' '
|
||||
test_when_finished "rm -f .git/hooks/pre-applypatch" &&
|
||||
rm -fr .git/rebase-apply &&
|
||||
git reset --hard &&
|
||||
git checkout first &&
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/pre-applypatch <<-\EOF &&
|
||||
test_hook pre-applypatch <<-\EOF &&
|
||||
git diff first >diff.actual
|
||||
exit 0
|
||||
EOF
|
||||
|
@ -368,12 +362,10 @@ test_expect_success 'am with pre-applypatch hook' '
|
|||
'
|
||||
|
||||
test_expect_success 'am with failing pre-applypatch hook' '
|
||||
test_when_finished "rm -f .git/hooks/pre-applypatch" &&
|
||||
rm -fr .git/rebase-apply &&
|
||||
git reset --hard &&
|
||||
git checkout first &&
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/pre-applypatch <<-\EOF &&
|
||||
test_hook pre-applypatch <<-\EOF &&
|
||||
exit 1
|
||||
EOF
|
||||
test_must_fail git am patch1 &&
|
||||
|
@ -383,12 +375,10 @@ test_expect_success 'am with failing pre-applypatch hook' '
|
|||
'
|
||||
|
||||
test_expect_success 'am with post-applypatch hook' '
|
||||
test_when_finished "rm -f .git/hooks/post-applypatch" &&
|
||||
rm -fr .git/rebase-apply &&
|
||||
git reset --hard &&
|
||||
git checkout first &&
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/post-applypatch <<-\EOF &&
|
||||
test_hook post-applypatch <<-\EOF &&
|
||||
git rev-parse HEAD >head.actual
|
||||
git diff second >diff.actual
|
||||
exit 0
|
||||
|
@ -403,12 +393,10 @@ test_expect_success 'am with post-applypatch hook' '
|
|||
'
|
||||
|
||||
test_expect_success 'am with failing post-applypatch hook' '
|
||||
test_when_finished "rm -f .git/hooks/post-applypatch" &&
|
||||
rm -fr .git/rebase-apply &&
|
||||
git reset --hard &&
|
||||
git checkout first &&
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/post-applypatch <<-\EOF &&
|
||||
test_hook post-applypatch <<-\EOF &&
|
||||
git rev-parse HEAD >head.actual
|
||||
exit 1
|
||||
EOF
|
||||
|
|
|
@ -10,8 +10,7 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
|||
. ./test-lib.sh
|
||||
|
||||
test_expect_success setup '
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/post-checkout <<-\EOF &&
|
||||
test_hook --setup post-checkout <<-\EOF &&
|
||||
echo "$@" >.git/post-checkout.args
|
||||
EOF
|
||||
test_commit one &&
|
||||
|
|
|
@ -35,8 +35,7 @@ test_expect_success setup '
|
|||
|
||||
test_expect_success 'unsigned push does not send push certificate' '
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
write_script dst/.git/hooks/post-receive <<-\EOF &&
|
||||
test_hook -C dst post-receive <<-\EOF &&
|
||||
# discard the update list
|
||||
cat >/dev/null
|
||||
# record the push certificate
|
||||
|
@ -52,8 +51,7 @@ test_expect_success 'unsigned push does not send push certificate' '
|
|||
|
||||
test_expect_success 'talking with a receiver without push certificate support' '
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
write_script dst/.git/hooks/post-receive <<-\EOF &&
|
||||
test_hook -C dst post-receive <<-\EOF &&
|
||||
# discard the update list
|
||||
cat >/dev/null
|
||||
# record the push certificate
|
||||
|
@ -69,22 +67,19 @@ test_expect_success 'talking with a receiver without push certificate support' '
|
|||
|
||||
test_expect_success 'push --signed fails with a receiver without push certificate support' '
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
test_must_fail git push --signed dst noop ff +noff 2>err &&
|
||||
test_i18ngrep "the receiving end does not support" err
|
||||
'
|
||||
|
||||
test_expect_success 'push --signed=1 is accepted' '
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
test_must_fail git push --signed=1 dst noop ff +noff 2>err &&
|
||||
test_i18ngrep "the receiving end does not support" err
|
||||
'
|
||||
|
||||
test_expect_success GPG 'no certificate for a signed push with no update' '
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
write_script dst/.git/hooks/post-receive <<-\EOF &&
|
||||
test_hook -C dst post-receive <<-\EOF &&
|
||||
if test -n "${GIT_PUSH_CERT-}"
|
||||
then
|
||||
git cat-file blob $GIT_PUSH_CERT >../push-cert
|
||||
|
@ -96,9 +91,8 @@ test_expect_success GPG 'no certificate for a signed push with no update' '
|
|||
|
||||
test_expect_success GPG 'signed push sends push certificate' '
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
git -C dst config receive.certnonceseed sekrit &&
|
||||
write_script dst/.git/hooks/post-receive <<-\EOF &&
|
||||
test_hook -C dst post-receive <<-\EOF &&
|
||||
# discard the update list
|
||||
cat >/dev/null
|
||||
# record the push certificate
|
||||
|
@ -139,10 +133,9 @@ test_expect_success GPG 'signed push sends push certificate' '
|
|||
|
||||
test_expect_success GPGSSH 'ssh signed push sends push certificate' '
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
git -C dst config gpg.ssh.allowedSignersFile "${GPGSSH_ALLOWED_SIGNERS}" &&
|
||||
git -C dst config receive.certnonceseed sekrit &&
|
||||
write_script dst/.git/hooks/post-receive <<-\EOF &&
|
||||
test_hook -C dst post-receive <<-\EOF &&
|
||||
# discard the update list
|
||||
cat >/dev/null
|
||||
# record the push certificate
|
||||
|
@ -223,9 +216,8 @@ test_expect_success GPG 'inconsistent push options in signed push not allowed' '
|
|||
|
||||
test_expect_success GPG 'fail without key and heed user.signingkey' '
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
git -C dst config receive.certnonceseed sekrit &&
|
||||
write_script dst/.git/hooks/post-receive <<-\EOF &&
|
||||
test_hook -C dst post-receive <<-\EOF &&
|
||||
# discard the update list
|
||||
cat >/dev/null
|
||||
# record the push certificate
|
||||
|
@ -273,9 +265,8 @@ test_expect_success GPG 'fail without key and heed user.signingkey' '
|
|||
test_expect_success GPGSM 'fail without key and heed user.signingkey x509' '
|
||||
test_config gpg.format x509 &&
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
git -C dst config receive.certnonceseed sekrit &&
|
||||
write_script dst/.git/hooks/post-receive <<-\EOF &&
|
||||
test_hook -C dst post-receive <<-\EOF &&
|
||||
# discard the update list
|
||||
cat >/dev/null
|
||||
# record the push certificate
|
||||
|
@ -326,10 +317,9 @@ test_expect_success GPGSM 'fail without key and heed user.signingkey x509' '
|
|||
test_expect_success GPGSSH 'fail without key and heed user.signingkey ssh' '
|
||||
test_config gpg.format ssh &&
|
||||
prepare_dst &&
|
||||
mkdir -p dst/.git/hooks &&
|
||||
git -C dst config gpg.ssh.allowedSignersFile "${GPGSSH_ALLOWED_SIGNERS}" &&
|
||||
git -C dst config receive.certnonceseed sekrit &&
|
||||
write_script dst/.git/hooks/post-receive <<-\EOF &&
|
||||
test_hook -C dst post-receive <<-\EOF &&
|
||||
# discard the update list
|
||||
cat >/dev/null
|
||||
# record the push certificate
|
||||
|
|
|
@ -17,8 +17,7 @@ test_expect_success 'setup' '
|
|||
'
|
||||
|
||||
test_expect_success 'test status, add, commit, others trigger hook without flags set' '
|
||||
mkdir -p .git/hooks &&
|
||||
write_script .git/hooks/post-index-change <<-\EOF &&
|
||||
test_hook post-index-change <<-\EOF &&
|
||||
if test "$1" -eq 1; then
|
||||
echo "Invalid combination of flags passed to hook; updated_workdir is set." >testfailure
|
||||
exit 1
|
||||
|
@ -63,7 +62,7 @@ test_expect_success 'test status, add, commit, others trigger hook without flags
|
|||
'
|
||||
|
||||
test_expect_success 'test checkout and reset trigger the hook' '
|
||||
write_script .git/hooks/post-index-change <<-\EOF &&
|
||||
test_hook post-index-change <<-\EOF &&
|
||||
if test "$1" -eq 1 && test "$2" -eq 1; then
|
||||
echo "Invalid combination of flags passed to hook; updated_workdir and updated_skipworktree are both set." >testfailure
|
||||
exit 1
|
||||
|
@ -106,7 +105,7 @@ test_expect_success 'test checkout and reset trigger the hook' '
|
|||
'
|
||||
|
||||
test_expect_success 'test reset --mixed and update-index triggers the hook' '
|
||||
write_script .git/hooks/post-index-change <<-\EOF &&
|
||||
test_hook post-index-change <<-\EOF &&
|
||||
if test "$1" -eq 1 && test "$2" -eq 1; then
|
||||
echo "Invalid combination of flags passed to hook; updated_workdir and updated_skipworktree are both set." >testfailure
|
||||
exit 1
|
||||
|
|
|
@ -2288,9 +2288,7 @@ test_expect_success $PREREQ 'cmdline in-reply-to used with --no-thread' '
|
|||
'
|
||||
|
||||
test_expect_success $PREREQ 'invoke hook' '
|
||||
mkdir -p .git/hooks &&
|
||||
|
||||
write_script .git/hooks/sendemail-validate <<-\EOF &&
|
||||
test_hook sendemail-validate <<-\EOF &&
|
||||
# test that we have the correct environment variable, pwd, and
|
||||
# argument
|
||||
case "$GIT_DIR" in
|
||||
|
|
Loading…
Reference in New Issue