summaryrefslogtreecommitdiff
path: root/t/t1416-ref-transaction-hooks.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t1416-ref-transaction-hooks.sh')
-rwxr-xr-xt/t1416-ref-transaction-hooks.sh40
1 files changed, 35 insertions, 5 deletions
diff --git a/t/t1416-ref-transaction-hooks.sh b/t/t1416-ref-transaction-hooks.sh
index da58d867a5..6c941027a8 100755
--- a/t/t1416-ref-transaction-hooks.sh
+++ b/t/t1416-ref-transaction-hooks.sh
@@ -2,11 +2,15 @@
test_description='reference transaction hooks'
+GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
+export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+
. ./test-lib.sh
test_expect_success setup '
mkdir -p .git/hooks &&
test_commit PRE &&
+ PRE_OID=$(git rev-parse PRE) &&
test_commit POST &&
POST_OID=$(git rev-parse POST)
'
@@ -52,11 +56,11 @@ test_expect_success 'hook gets all queued updates in prepared state' '
EOF
cat >expect <<-EOF &&
$ZERO_OID $POST_OID HEAD
- $ZERO_OID $POST_OID refs/heads/master
+ $ZERO_OID $POST_OID refs/heads/main
EOF
git update-ref HEAD POST <<-EOF &&
update HEAD $ZERO_OID $POST_OID
- update refs/heads/master $ZERO_OID $POST_OID
+ update refs/heads/main $ZERO_OID $POST_OID
EOF
test_cmp expect actual
'
@@ -75,7 +79,7 @@ test_expect_success 'hook gets all queued updates in committed state' '
EOF
cat >expect <<-EOF &&
$ZERO_OID $POST_OID HEAD
- $ZERO_OID $POST_OID refs/heads/master
+ $ZERO_OID $POST_OID refs/heads/main
EOF
git update-ref HEAD POST &&
test_cmp expect actual
@@ -95,15 +99,41 @@ test_expect_success 'hook gets all queued updates in aborted state' '
EOF
cat >expect <<-EOF &&
$ZERO_OID $POST_OID HEAD
- $ZERO_OID $POST_OID refs/heads/master
+ $ZERO_OID $POST_OID refs/heads/main
EOF
git update-ref --stdin <<-EOF &&
start
update HEAD POST $ZERO_OID
- update refs/heads/master POST $ZERO_OID
+ update refs/heads/main POST $ZERO_OID
abort
EOF
test_cmp expect actual
'
+test_expect_success 'interleaving hook calls succeed' '
+ test_when_finished "rm -r target-repo.git" &&
+
+ git init --bare target-repo.git &&
+
+ write_script target-repo.git/hooks/reference-transaction <<-\EOF &&
+ echo $0 "$@" >>actual
+ EOF
+
+ write_script target-repo.git/hooks/update <<-\EOF &&
+ echo $0 "$@" >>actual
+ EOF
+
+ cat >expect <<-EOF &&
+ hooks/update refs/tags/PRE $ZERO_OID $PRE_OID
+ hooks/reference-transaction prepared
+ hooks/reference-transaction committed
+ hooks/update refs/tags/POST $ZERO_OID $POST_OID
+ hooks/reference-transaction prepared
+ hooks/reference-transaction committed
+ EOF
+
+ git push ./target-repo.git PRE POST &&
+ test_cmp expect target-repo.git/actual
+'
+
test_done