]>
Commit | Line | Data |
---|---|---|
3f3d0cea DB |
1 | #!/bin/sh |
2 | ||
3 | test_description='show-ref' | |
06d53148 | 4 | GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main |
334afbc7 JS |
5 | export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME |
6 | ||
3f3d0cea DB |
7 | . ./test-lib.sh |
8 | ||
9 | test_expect_success setup ' | |
6cf8d96f | 10 | test_commit --annotate A && |
3f3d0cea | 11 | git checkout -b side && |
6cf8d96f | 12 | test_commit --annotate B && |
06d53148 | 13 | git checkout main && |
3f3d0cea DB |
14 | test_commit C && |
15 | git branch B A^0 | |
16 | ' | |
17 | ||
18 | test_expect_success 'show-ref' ' | |
19 | echo $(git rev-parse refs/tags/A) refs/tags/A >expect && | |
20 | ||
21 | git show-ref A >actual && | |
22 | test_cmp expect actual && | |
23 | ||
24 | git show-ref tags/A >actual && | |
25 | test_cmp expect actual && | |
26 | ||
27 | git show-ref refs/tags/A >actual && | |
28 | test_cmp expect actual && | |
29 | ||
8fb26872 | 30 | test_must_fail git show-ref D >actual && |
d3c6751b | 31 | test_must_be_empty actual |
3f3d0cea DB |
32 | ' |
33 | ||
34 | test_expect_success 'show-ref -q' ' | |
3f3d0cea | 35 | git show-ref -q A >actual && |
d3c6751b | 36 | test_must_be_empty actual && |
3f3d0cea DB |
37 | |
38 | git show-ref -q tags/A >actual && | |
d3c6751b | 39 | test_must_be_empty actual && |
3f3d0cea DB |
40 | |
41 | git show-ref -q refs/tags/A >actual && | |
d3c6751b | 42 | test_must_be_empty actual && |
3f3d0cea DB |
43 | |
44 | test_must_fail git show-ref -q D >actual && | |
d3c6751b | 45 | test_must_be_empty actual |
3f3d0cea DB |
46 | ' |
47 | ||
48 | test_expect_success 'show-ref --verify' ' | |
49 | echo $(git rev-parse refs/tags/A) refs/tags/A >expect && | |
50 | ||
51 | git show-ref --verify refs/tags/A >actual && | |
52 | test_cmp expect actual && | |
53 | ||
3f3d0cea | 54 | test_must_fail git show-ref --verify A >actual && |
d3c6751b | 55 | test_must_be_empty actual && |
3f3d0cea DB |
56 | |
57 | test_must_fail git show-ref --verify tags/A >actual && | |
d3c6751b | 58 | test_must_be_empty actual && |
3f3d0cea | 59 | |
8fb26872 | 60 | test_must_fail git show-ref --verify D >actual && |
d3c6751b | 61 | test_must_be_empty actual |
3f3d0cea DB |
62 | ' |
63 | ||
64 | test_expect_success 'show-ref --verify -q' ' | |
3f3d0cea | 65 | git show-ref --verify -q refs/tags/A >actual && |
d3c6751b | 66 | test_must_be_empty actual && |
3f3d0cea DB |
67 | |
68 | test_must_fail git show-ref --verify -q A >actual && | |
d3c6751b | 69 | test_must_be_empty actual && |
3f3d0cea DB |
70 | |
71 | test_must_fail git show-ref --verify -q tags/A >actual && | |
d3c6751b | 72 | test_must_be_empty actual && |
3f3d0cea | 73 | |
8fb26872 | 74 | test_must_fail git show-ref --verify -q D >actual && |
d3c6751b | 75 | test_must_be_empty actual |
3f3d0cea DB |
76 | ' |
77 | ||
78 | test_expect_success 'show-ref -d' ' | |
79 | { | |
80 | echo $(git rev-parse refs/tags/A) refs/tags/A && | |
81 | echo $(git rev-parse refs/tags/A^0) "refs/tags/A^{}" | |
82 | echo $(git rev-parse refs/tags/C) refs/tags/C | |
83 | } >expect && | |
84 | git show-ref -d A C >actual && | |
85 | test_cmp expect actual && | |
86 | ||
87 | git show-ref -d tags/A tags/C >actual && | |
88 | test_cmp expect actual && | |
89 | ||
90 | git show-ref -d refs/tags/A refs/tags/C >actual && | |
91 | test_cmp expect actual && | |
92 | ||
f1627040 VP |
93 | git show-ref --verify -d refs/tags/A refs/tags/C >actual && |
94 | test_cmp expect actual && | |
95 | ||
06d53148 JS |
96 | echo $(git rev-parse refs/heads/main) refs/heads/main >expect && |
97 | git show-ref -d main >actual && | |
3f3d0cea DB |
98 | test_cmp expect actual && |
99 | ||
06d53148 | 100 | git show-ref -d heads/main >actual && |
3f3d0cea DB |
101 | test_cmp expect actual && |
102 | ||
06d53148 | 103 | git show-ref -d refs/heads/main >actual && |
8fb26872 | 104 | test_cmp expect actual && |
3f3d0cea | 105 | |
06d53148 | 106 | git show-ref -d --verify refs/heads/main >actual && |
8fb26872 | 107 | test_cmp expect actual && |
3f3d0cea | 108 | |
06d53148 | 109 | test_must_fail git show-ref -d --verify main >actual && |
d3c6751b | 110 | test_must_be_empty actual && |
3f3d0cea | 111 | |
06d53148 | 112 | test_must_fail git show-ref -d --verify heads/main >actual && |
d3c6751b | 113 | test_must_be_empty actual && |
f1627040 VP |
114 | |
115 | test_must_fail git show-ref --verify -d A C >actual && | |
d3c6751b | 116 | test_must_be_empty actual && |
f1627040 VP |
117 | |
118 | test_must_fail git show-ref --verify -d tags/A tags/C >actual && | |
d3c6751b | 119 | test_must_be_empty actual |
3f3d0cea DB |
120 | |
121 | ' | |
122 | ||
123 | test_expect_success 'show-ref --heads, --tags, --head, pattern' ' | |
06d53148 | 124 | for branch in B main side |
3f3d0cea DB |
125 | do |
126 | echo $(git rev-parse refs/heads/$branch) refs/heads/$branch | |
127 | done >expect.heads && | |
128 | git show-ref --heads >actual && | |
129 | test_cmp expect.heads actual && | |
130 | ||
131 | for tag in A B C | |
132 | do | |
133 | echo $(git rev-parse refs/tags/$tag) refs/tags/$tag | |
134 | done >expect.tags && | |
135 | git show-ref --tags >actual && | |
136 | test_cmp expect.tags actual && | |
137 | ||
138 | cat expect.heads expect.tags >expect && | |
139 | git show-ref --heads --tags >actual && | |
140 | test_cmp expect actual && | |
141 | ||
142 | { | |
143 | echo $(git rev-parse HEAD) HEAD && | |
144 | cat expect.heads expect.tags | |
145 | } >expect && | |
146 | git show-ref --heads --tags --head >actual && | |
147 | test_cmp expect actual && | |
148 | ||
149 | { | |
150 | echo $(git rev-parse HEAD) HEAD && | |
151 | echo $(git rev-parse refs/heads/B) refs/heads/B | |
152 | echo $(git rev-parse refs/tags/B) refs/tags/B | |
153 | } >expect && | |
154 | git show-ref --head B >actual && | |
155 | test_cmp expect actual && | |
156 | ||
157 | { | |
158 | echo $(git rev-parse HEAD) HEAD && | |
159 | echo $(git rev-parse refs/heads/B) refs/heads/B | |
160 | echo $(git rev-parse refs/tags/B) refs/tags/B | |
161 | echo $(git rev-parse refs/tags/B^0) "refs/tags/B^{}" | |
162 | } >expect && | |
163 | git show-ref --head -d B >actual && | |
164 | test_cmp expect actual | |
165 | ' | |
166 | ||
ec7c51bc VP |
167 | test_expect_success 'show-ref --verify HEAD' ' |
168 | echo $(git rev-parse HEAD) HEAD >expect && | |
169 | git show-ref --verify HEAD >actual && | |
170 | test_cmp expect actual && | |
171 | ||
ec7c51bc | 172 | git show-ref --verify -q HEAD >actual && |
d3c6751b | 173 | test_must_be_empty actual |
ec7c51bc VP |
174 | ' |
175 | ||
d01b8203 VP |
176 | test_expect_success 'show-ref --verify with dangling ref' ' |
177 | sha1_file() { | |
178 | echo "$*" | sed "s#..#.git/objects/&/#" | |
179 | } && | |
180 | ||
181 | remove_object() { | |
182 | file=$(sha1_file "$*") && | |
183 | test -e "$file" && | |
184 | rm -f "$file" | |
185 | } && | |
186 | ||
187 | test_when_finished "rm -rf dangling" && | |
188 | ( | |
189 | git init dangling && | |
190 | cd dangling && | |
191 | test_commit dangling && | |
192 | sha=$(git rev-parse refs/tags/dangling) && | |
193 | remove_object $sha && | |
194 | test_must_fail git show-ref --verify refs/tags/dangling | |
195 | ) | |
196 | ' | |
197 | ||
3f3d0cea | 198 | test_done |