diff options
Diffstat (limited to 'third_party/git/t/t7516-commit-races.sh')
-rwxr-xr-x | third_party/git/t/t7516-commit-races.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/third_party/git/t/t7516-commit-races.sh b/third_party/git/t/t7516-commit-races.sh new file mode 100755 index 000000000000..f2ce14e9071c --- /dev/null +++ b/third_party/git/t/t7516-commit-races.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +test_description='git commit races' +. ./test-lib.sh + +test_expect_success 'race to create orphan commit' ' + write_script hare-editor <<-\EOF && + git commit --allow-empty -m hare + EOF + test_must_fail env EDITOR=./hare-editor git commit --allow-empty -m tortoise -e && + git show -s --pretty=format:%s >subject && + grep hare subject && + test -z "$(git show -s --pretty=format:%P)" +' + +test_expect_success 'race to create non-orphan commit' ' + write_script airplane-editor <<-\EOF && + git commit --allow-empty -m airplane + EOF + git checkout --orphan branch && + git commit --allow-empty -m base && + git rev-parse HEAD >base && + test_must_fail env EDITOR=./airplane-editor git commit --allow-empty -m ship -e && + git show -s --pretty=format:%s >subject && + grep airplane subject && + git rev-parse HEAD^ >parent && + test_cmp base parent +' + +test_done |