diff options
Diffstat (limited to 'third_party/git/t/t1416-ref-transaction-hooks.sh')
-rwxr-xr-x | third_party/git/t/t1416-ref-transaction-hooks.sh | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/third_party/git/t/t1416-ref-transaction-hooks.sh b/third_party/git/t/t1416-ref-transaction-hooks.sh deleted file mode 100755 index f6e741c6c055..000000000000 --- a/third_party/git/t/t1416-ref-transaction-hooks.sh +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/sh - -test_description='reference transaction hooks' - -. ./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) -' - -test_expect_success 'hook allows updating ref if successful' ' - test_when_finished "rm .git/hooks/reference-transaction" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - echo "$*" >>actual - EOF - cat >expect <<-EOF && - prepared - committed - EOF - git update-ref HEAD POST && - test_cmp expect actual -' - -test_expect_success 'hook aborts updating ref in prepared state' ' - test_when_finished "rm .git/hooks/reference-transaction" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - if test "$1" = prepared - then - exit 1 - fi - EOF - test_must_fail git update-ref HEAD POST 2>err && - test_i18ngrep "ref updates aborted by hook" err -' - -test_expect_success 'hook gets all queued updates in prepared state' ' - test_when_finished "rm .git/hooks/reference-transaction actual" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - if test "$1" = prepared - then - while read -r line - do - printf "%s\n" "$line" - done >actual - fi - EOF - cat >expect <<-EOF && - $ZERO_OID $POST_OID HEAD - $ZERO_OID $POST_OID refs/heads/master - EOF - git update-ref HEAD POST <<-EOF && - update HEAD $ZERO_OID $POST_OID - update refs/heads/master $ZERO_OID $POST_OID - EOF - test_cmp expect actual -' - -test_expect_success 'hook gets all queued updates in committed state' ' - test_when_finished "rm .git/hooks/reference-transaction actual" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - if test "$1" = committed - then - while read -r line - do - printf "%s\n" "$line" - done >actual - fi - EOF - cat >expect <<-EOF && - $ZERO_OID $POST_OID HEAD - $ZERO_OID $POST_OID refs/heads/master - EOF - git update-ref HEAD POST && - test_cmp expect actual -' - -test_expect_success 'hook gets all queued updates in aborted state' ' - test_when_finished "rm .git/hooks/reference-transaction actual" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - if test "$1" = aborted - then - while read -r line - do - printf "%s\n" "$line" - done >actual - fi - EOF - cat >expect <<-EOF && - $ZERO_OID $POST_OID HEAD - $ZERO_OID $POST_OID refs/heads/master - EOF - git update-ref --stdin <<-EOF && - start - update HEAD POST $ZERO_OID - update refs/heads/master 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 |