diff options
Diffstat (limited to 'third_party/git/t/t1401-symbolic-ref.sh')
-rwxr-xr-x | third_party/git/t/t1401-symbolic-ref.sh | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/third_party/git/t/t1401-symbolic-ref.sh b/third_party/git/t/t1401-symbolic-ref.sh deleted file mode 100755 index a4ebb0b65fec..000000000000 --- a/third_party/git/t/t1401-symbolic-ref.sh +++ /dev/null @@ -1,163 +0,0 @@ -#!/bin/sh - -test_description='basic symbolic-ref tests' -. ./test-lib.sh - -# If the tests munging HEAD fail, they can break detection of -# the git repo, meaning that further tests will operate on -# the surrounding git repo instead of the trash directory. -reset_to_sane() { - echo ref: refs/heads/foo >.git/HEAD -} - -test_expect_success 'symbolic-ref writes HEAD' ' - git symbolic-ref HEAD refs/heads/foo && - echo ref: refs/heads/foo >expect && - test_cmp expect .git/HEAD -' - -test_expect_success 'symbolic-ref reads HEAD' ' - echo refs/heads/foo >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual -' - -test_expect_success 'symbolic-ref refuses non-ref for HEAD' ' - test_must_fail git symbolic-ref HEAD foo -' -reset_to_sane - -test_expect_success 'symbolic-ref refuses bare sha1' ' - echo content >file && git add file && git commit -m one && - test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD) -' -reset_to_sane - -test_expect_success 'HEAD cannot be removed' ' - test_must_fail git symbolic-ref -d HEAD -' - -reset_to_sane - -test_expect_success 'symbolic-ref can be deleted' ' - git symbolic-ref NOTHEAD refs/heads/foo && - git symbolic-ref -d NOTHEAD && - test_path_is_file .git/refs/heads/foo && - test_path_is_missing .git/NOTHEAD -' -reset_to_sane - -test_expect_success 'symbolic-ref can delete dangling symref' ' - git symbolic-ref NOTHEAD refs/heads/missing && - git symbolic-ref -d NOTHEAD && - test_path_is_missing .git/refs/heads/missing && - test_path_is_missing .git/NOTHEAD -' -reset_to_sane - -test_expect_success 'symbolic-ref fails to delete missing FOO' ' - echo "fatal: Cannot delete FOO, not a symbolic ref" >expect && - test_must_fail git symbolic-ref -d FOO >actual 2>&1 && - test_cmp expect actual -' -reset_to_sane - -test_expect_success 'symbolic-ref fails to delete real ref' ' - echo "fatal: Cannot delete refs/heads/foo, not a symbolic ref" >expect && - test_must_fail git symbolic-ref -d refs/heads/foo >actual 2>&1 && - git rev-parse --verify refs/heads/foo && - test_cmp expect actual -' -reset_to_sane - -test_expect_success 'create large ref name' ' - # make 256+ character ref; some systems may not handle that, - # so be gentle - long=0123456789abcdef && - long=$long/$long/$long/$long && - long=$long/$long/$long/$long && - long_ref=refs/heads/$long && - tree=$(git write-tree) && - commit=$(echo foo | git commit-tree $tree) && - if git update-ref $long_ref $commit; then - test_set_prereq LONG_REF - else - echo >&2 "long refs not supported" - fi -' - -test_expect_success LONG_REF 'symbolic-ref can point to large ref name' ' - git symbolic-ref HEAD $long_ref && - echo $long_ref >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual -' - -test_expect_success LONG_REF 'we can parse long symbolic ref' ' - echo $commit >expect && - git rev-parse --verify HEAD >actual && - test_cmp expect actual -' - -test_expect_success 'symbolic-ref reports failure in exit code' ' - test_when_finished "rm -f .git/HEAD.lock" && - >.git/HEAD.lock && - test_must_fail git symbolic-ref HEAD refs/heads/whatever -' - -test_expect_success 'symbolic-ref writes reflog entry' ' - git checkout -b log1 && - test_commit one && - git checkout -b log2 && - test_commit two && - git checkout --orphan orphan && - git symbolic-ref -m create HEAD refs/heads/log1 && - git symbolic-ref -m update HEAD refs/heads/log2 && - cat >expect <<-\EOF && - update - create - EOF - git log --format=%gs -g -2 >actual && - test_cmp expect actual -' - -test_expect_success 'symbolic-ref does not create ref d/f conflicts' ' - git checkout -b df && - test_commit df && - test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df && - git pack-refs --all --prune && - test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df -' - -test_expect_success 'symbolic-ref can overwrite pointer to invalid name' ' - test_when_finished reset_to_sane && - head=$(git rev-parse HEAD) && - git symbolic-ref HEAD refs/heads/outer && - test_when_finished "git update-ref -d refs/heads/outer/inner" && - git update-ref refs/heads/outer/inner $head && - git symbolic-ref HEAD refs/heads/unrelated -' - -test_expect_success 'symbolic-ref can resolve d/f name (EISDIR)' ' - test_when_finished reset_to_sane && - head=$(git rev-parse HEAD) && - git symbolic-ref HEAD refs/heads/outer/inner && - test_when_finished "git update-ref -d refs/heads/outer" && - git update-ref refs/heads/outer $head && - echo refs/heads/outer/inner >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual -' - -test_expect_success 'symbolic-ref can resolve d/f name (ENOTDIR)' ' - test_when_finished reset_to_sane && - head=$(git rev-parse HEAD) && - git symbolic-ref HEAD refs/heads/outer && - test_when_finished "git update-ref -d refs/heads/outer/inner" && - git update-ref refs/heads/outer/inner $head && - echo refs/heads/outer >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual -' - -test_done |