tests: use "test_hook" for misc "mkdir -p" and "chmod" cases

Make use of "test_hook" in various cases that didn't fit neatly into
preceding commits. Here we need to indent blocks in addition to
changing the test code, or to make other small cosmetic changes.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Ævar Arnfjörð Bjarmason 2022-03-17 11:13:15 +01:00 committed by Junio C Hamano
parent bef805b7d8
commit c36c62859a
5 changed files with 59 additions and 81 deletions

View File

@ -31,12 +31,9 @@ test_expect_success 'rebase --root fails with too many args' '
' '


test_expect_success 'setup pre-rebase hook' ' test_expect_success 'setup pre-rebase hook' '
mkdir -p .git/hooks && test_hook --setup pre-rebase <<-\EOF
cat >.git/hooks/pre-rebase <<EOF && echo "$1,$2" >.git/PRE-REBASE-INPUT
#!$SHELL_PATH EOF
echo "\$1,\$2" >.git/PRE-REBASE-INPUT
EOF
chmod +x .git/hooks/pre-rebase
' '
cat > expect <<EOF cat > expect <<EOF
4 4
@ -141,12 +138,9 @@ commit work7~5
EOF EOF


test_expect_success 'setup pre-rebase hook that fails' ' test_expect_success 'setup pre-rebase hook that fails' '
mkdir -p .git/hooks && test_hook --setup --clobber pre-rebase <<-\EOF
cat >.git/hooks/pre-rebase <<EOF && false
#!$SHELL_PATH EOF
false
EOF
chmod +x .git/hooks/pre-rebase
' '


test_expect_success 'pre-rebase hook stops rebase' ' test_expect_success 'pre-rebase hook stops rebase' '

View File

@ -41,12 +41,9 @@ test_expect_success 'rebase -i' '
' '


test_expect_success 'setup pre-rebase hook' ' test_expect_success 'setup pre-rebase hook' '
mkdir -p .git/hooks && test_hook --setup pre-rebase <<-\EOF
cat >.git/hooks/pre-rebase <<EOF && echo "$1,$2" >.git/PRE-REBASE-INPUT
#!$SHELL_PATH EOF
echo "\$1,\$2" >.git/PRE-REBASE-INPUT
EOF
chmod +x .git/hooks/pre-rebase
' '


test_expect_success 'pre-rebase hook gets correct input (1)' ' test_expect_success 'pre-rebase hook gets correct input (1)' '
@ -102,12 +99,9 @@ test_expect_success 'pre-rebase hook gets correct input (6)' '
' '


test_expect_success 'setup pre-rebase hook that fails' ' test_expect_success 'setup pre-rebase hook that fails' '
mkdir -p .git/hooks && test_hook --setup --clobber pre-rebase <<-\EOF
cat >.git/hooks/pre-rebase <<EOF && false
#!$SHELL_PATH EOF
false
EOF
chmod +x .git/hooks/pre-rebase
' '


test_expect_success 'pre-rebase hook stops rebase (1)' ' test_expect_success 'pre-rebase hook stops rebase (1)' '

View File

@ -20,46 +20,38 @@ test_expect_success setup '
git clone --bare ./. victim.git && git clone --bare ./. victim.git &&
GIT_DIR=victim.git git update-ref refs/heads/tofail $commit1 && GIT_DIR=victim.git git update-ref refs/heads/tofail $commit1 &&
git update-ref refs/heads/main $commit1 && git update-ref refs/heads/main $commit1 &&
git update-ref refs/heads/tofail $commit0 git update-ref refs/heads/tofail $commit0 &&

test_hook --setup -C victim.git pre-receive <<-\EOF &&
printf %s "$@" >>$GIT_DIR/pre-receive.args
cat - >$GIT_DIR/pre-receive.stdin
echo STDOUT pre-receive
echo STDERR pre-receive >&2
EOF

test_hook --setup -C victim.git update <<-\EOF &&
echo "$@" >>$GIT_DIR/update.args
read x; printf %s "$x" >$GIT_DIR/update.stdin
echo STDOUT update $1
echo STDERR update $1 >&2
test "$1" = refs/heads/main || exit
EOF

test_hook --setup -C victim.git post-receive <<-\EOF &&
printf %s "$@" >>$GIT_DIR/post-receive.args
cat - >$GIT_DIR/post-receive.stdin
echo STDOUT post-receive
echo STDERR post-receive >&2
EOF

test_hook --setup -C victim.git post-update <<-\EOF
echo "$@" >>$GIT_DIR/post-update.args
read x; printf %s "$x" >$GIT_DIR/post-update.stdin
echo STDOUT post-update
echo STDERR post-update >&2
EOF
' '


cat >victim.git/hooks/pre-receive <<'EOF'
#!/bin/sh
printf %s "$@" >>$GIT_DIR/pre-receive.args
cat - >$GIT_DIR/pre-receive.stdin
echo STDOUT pre-receive
echo STDERR pre-receive >&2
EOF
chmod u+x victim.git/hooks/pre-receive

cat >victim.git/hooks/update <<'EOF'
#!/bin/sh
echo "$@" >>$GIT_DIR/update.args
read x; printf %s "$x" >$GIT_DIR/update.stdin
echo STDOUT update $1
echo STDERR update $1 >&2
test "$1" = refs/heads/main || exit
EOF
chmod u+x victim.git/hooks/update

cat >victim.git/hooks/post-receive <<'EOF'
#!/bin/sh
printf %s "$@" >>$GIT_DIR/post-receive.args
cat - >$GIT_DIR/post-receive.stdin
echo STDOUT post-receive
echo STDERR post-receive >&2
EOF
chmod u+x victim.git/hooks/post-receive

cat >victim.git/hooks/post-update <<'EOF'
#!/bin/sh
echo "$@" >>$GIT_DIR/post-update.args
read x; printf %s "$x" >$GIT_DIR/post-update.stdin
echo STDOUT post-update
echo STDERR post-update >&2
EOF
chmod u+x victim.git/hooks/post-update

test_expect_success push ' test_expect_success push '
test_must_fail git send-pack --force ./victim.git \ test_must_fail git send-pack --force ./victim.git \
main tofail >send.out 2>send.err main tofail >send.out 2>send.err

View File

@ -17,15 +17,13 @@ test_expect_success 'setup' '
git checkout A^0 && git checkout A^0 &&
test_commit E bar E && test_commit E bar E &&
test_commit F foo F && test_commit F foo F &&
git checkout main git checkout main &&
'


cat >.git/hooks/post-rewrite <<EOF test_hook --setup post-rewrite <<-EOF
#!/bin/sh echo \$@ > "$TRASH_DIRECTORY"/post-rewrite.args
echo \$@ > "$TRASH_DIRECTORY"/post-rewrite.args cat > "$TRASH_DIRECTORY"/post-rewrite.data
cat > "$TRASH_DIRECTORY"/post-rewrite.data EOF
EOF '
chmod u+x .git/hooks/post-rewrite


clear_hook_input () { clear_hook_input () {
rm -f post-rewrite.args post-rewrite.data rm -f post-rewrite.args post-rewrite.data

View File

@ -96,18 +96,18 @@ test_expect_success 'create and delete remote branch' '
test_must_fail git show-ref --verify refs/remotes/origin/dev test_must_fail git show-ref --verify refs/remotes/origin/dev
' '


cat >"$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git/hooks/update" <<EOF test_expect_success 'setup rejected update hook' '
#!/bin/sh test_hook --setup -C "$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git" update <<-\EOF &&
exit 1 exit 1
EOF EOF
chmod a+x "$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git/hooks/update"


cat >exp <<EOF cat >exp <<-EOF
remote: error: hook declined to update refs/heads/dev2 remote: error: hook declined to update refs/heads/dev2
To http://127.0.0.1:$LIB_HTTPD_PORT/smart/test_repo.git To http://127.0.0.1:$LIB_HTTPD_PORT/smart/test_repo.git
! [remote rejected] dev2 -> dev2 (hook declined) ! [remote rejected] dev2 -> dev2 (hook declined)
error: failed to push some refs to 'http://127.0.0.1:$LIB_HTTPD_PORT/smart/test_repo.git' error: failed to push some refs to '\''http://127.0.0.1:$LIB_HTTPD_PORT/smart/test_repo.git'\''
EOF EOF
'


test_expect_success 'rejected update prints status' ' test_expect_success 'rejected update prints status' '
cd "$ROOT_PATH"/test_repo_clone && cd "$ROOT_PATH"/test_repo_clone &&