]> git.ipfire.org Git - thirdparty/git.git/blame - t/t1405-main-ref-store.sh
Merge branch 'tb/make-indent-conditional-with-non-spaces'
[thirdparty/git.git] / t / t1405-main-ref-store.sh
CommitLineData
16feb99d
NTND
1#!/bin/sh
2
3test_description='test main ref store api'
4
06d53148 5GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
334afbc7
JS
6export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
7
3e3b9321 8TEST_PASSES_SANITIZE_LEAK=true
16feb99d
NTND
9. ./test-lib.sh
10
65370d81 11RUN="test-tool ref-store main"
16feb99d 12
a50234b3
HWN
13
14test_expect_success 'setup' '
15 test_commit one
16'
17
06d53148
JS
18test_expect_success 'create_symref(FOO, refs/heads/main)' '
19 $RUN create-symref FOO refs/heads/main nothing &&
20 echo refs/heads/main >expected &&
16feb99d
NTND
21 git symbolic-ref FOO >actual &&
22 test_cmp expected actual
23'
24
25test_expect_success 'delete_refs(FOO, refs/tags/new-tag)' '
36a31792 26 git tag -a -m new-tag new-tag HEAD &&
16feb99d
NTND
27 git rev-parse FOO -- &&
28 git rev-parse refs/tags/new-tag -- &&
06d53148 29 m=$(git rev-parse main) &&
93db6eef 30 $RUN delete-refs REF_NO_DEREF nothing FOO refs/tags/new-tag &&
09743417 31 test_must_fail git rev-parse --symbolic-full-name FOO &&
16feb99d
NTND
32 test_must_fail git rev-parse FOO -- &&
33 test_must_fail git rev-parse refs/tags/new-tag --
34'
35
06d53148
JS
36test_expect_success 'rename_refs(main, new-main)' '
37 git rev-parse main >expected &&
38 $RUN rename-ref refs/heads/main refs/heads/new-main &&
39 git rev-parse new-main >actual &&
16feb99d 40 test_cmp expected actual &&
06d53148 41 test_commit recreate-main
16feb99d
NTND
42'
43
44test_expect_success 'for_each_ref(refs/heads/)' '
64af7752 45 $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
16feb99d 46 cat >expected <<-\EOF &&
06d53148
JS
47 main 0x0
48 new-main 0x0
16feb99d
NTND
49 EOF
50 test_cmp expected actual
51'
52
adac8115 53test_expect_success 'for_each_ref() is sorted' '
63477b32 54 $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
adac8115
NTND
55 sort actual > expected &&
56 test_cmp expected actual
57'
58
06d53148
JS
59test_expect_success 'resolve_ref(new-main)' '
60 SHA1=`git rev-parse new-main` &&
61 echo "$SHA1 refs/heads/new-main 0x0" >expected &&
62 $RUN resolve-ref refs/heads/new-main 0 >actual &&
16feb99d
NTND
63 test_cmp expected actual
64'
65
06d53148
JS
66test_expect_success 'verify_ref(new-main)' '
67 $RUN verify-ref refs/heads/new-main
16feb99d
NTND
68'
69
70test_expect_success 'for_each_reflog()' '
31f89839 71 $RUN for-each-reflog >actual &&
16feb99d 72 cat >expected <<-\EOF &&
31f89839
PS
73 HEAD
74 refs/heads/main
75 refs/heads/new-main
16feb99d
NTND
76 EOF
77 test_cmp expected actual
78'
79
80test_expect_success 'for_each_reflog_ent()' '
81 $RUN for-each-reflog-ent HEAD >actual &&
82 head -n1 actual | grep one &&
21f0e850 83 tail -n1 actual | grep recreate-main
16feb99d
NTND
84'
85
86test_expect_success 'for_each_reflog_ent_reverse()' '
87 $RUN for-each-reflog-ent-reverse HEAD >actual &&
06d53148 88 head -n1 actual | grep recreate-main &&
21f0e850 89 tail -n1 actual | grep one
16feb99d
NTND
90'
91
92test_expect_success 'reflog_exists(HEAD)' '
93 $RUN reflog-exists HEAD
94'
95
96test_expect_success 'delete_reflog(HEAD)' '
97 $RUN delete-reflog HEAD &&
ace40eab 98 test_must_fail git reflog exists HEAD
16feb99d
NTND
99'
100
4e8df1a3 101test_expect_success 'create-reflog(HEAD)' '
7b089120 102 $RUN create-reflog HEAD &&
ace40eab 103 git reflog exists HEAD
16feb99d
NTND
104'
105
106test_expect_success 'delete_ref(refs/heads/foo)' '
107 git checkout -b foo &&
108 FOO_SHA1=`git rev-parse foo` &&
109 git checkout --detach &&
110 test_commit bar-commit &&
111 git checkout -b bar &&
112 BAR_SHA1=`git rev-parse bar` &&
113 $RUN update-ref updating refs/heads/foo $BAR_SHA1 $FOO_SHA1 0 &&
114 echo $BAR_SHA1 >expected &&
115 git rev-parse refs/heads/foo >actual &&
116 test_cmp expected actual
117'
118
119test_expect_success 'delete_ref(refs/heads/foo)' '
120 SHA1=`git rev-parse foo` &&
121 git checkout --detach &&
122 $RUN delete-ref msg refs/heads/foo $SHA1 0 &&
123 test_must_fail git rev-parse refs/heads/foo --
124'
125
126test_done