]>
Commit | Line | Data |
---|---|---|
446c6fae RJ |
1 | #!/bin/sh |
2 | # | |
3 | # | |
4 | ||
5 | test_description='git-mktag: tag object verify test' | |
6 | ||
7 | . ./test-lib.sh | |
8 | ||
9 | ########################################################### | |
10 | # check the tag.sig file, expecting verify_tag() to fail, | |
11 | # and checking that the error message matches the pattern | |
12 | # given in the expect.pat file. | |
13 | ||
14 | check_verify_failure () { | |
15 | test_expect_success \ | |
16 | "$1" \ | |
17 | 'git-mktag <tag.sig 2>message || | |
18 | egrep -q -f expect.pat message' | |
19 | } | |
20 | ||
21 | ########################################################### | |
22 | # first create a commit, so we have a valid object/type | |
23 | # for the tag. | |
24 | echo Hello >A | |
25 | git-update-index --add A | |
26 | git-commit -m "Initial commit" | |
27 | head=$(git-rev-parse --verify HEAD) | |
28 | ||
29 | ############################################################ | |
30 | # 1. length check | |
31 | ||
32 | cat >tag.sig <<EOF | |
33 | too short for a tag | |
34 | EOF | |
35 | ||
36 | cat >expect.pat <<EOF | |
37 | ^error: .*size wrong.*$ | |
38 | EOF | |
39 | ||
40 | check_verify_failure 'Tag object length check' | |
41 | ||
42 | ############################################################ | |
43 | # 2. object line label check | |
44 | ||
45 | cat >tag.sig <<EOF | |
46 | xxxxxx 139e9b33986b1c2670fff52c5067603117b3e895 | |
47 | type tag | |
48 | tag mytag | |
49 | EOF | |
50 | ||
51 | cat >expect.pat <<EOF | |
52 | ^error: char0: .*"object "$ | |
53 | EOF | |
54 | ||
55 | check_verify_failure '"object" line label check' | |
56 | ||
57 | ############################################################ | |
58 | # 3. object line SHA1 check | |
59 | ||
60 | cat >tag.sig <<EOF | |
61 | object zz9e9b33986b1c2670fff52c5067603117b3e895 | |
62 | type tag | |
63 | tag mytag | |
64 | EOF | |
65 | ||
66 | cat >expect.pat <<EOF | |
67 | ^error: char7: .*SHA1 hash$ | |
68 | EOF | |
69 | ||
70 | check_verify_failure '"object" line SHA1 check' | |
71 | ||
72 | ############################################################ | |
73 | # 4. type line label check | |
74 | ||
75 | cat >tag.sig <<EOF | |
76 | object 779e9b33986b1c2670fff52c5067603117b3e895 | |
77 | xxxx tag | |
78 | tag mytag | |
79 | EOF | |
80 | ||
81 | cat >expect.pat <<EOF | |
82 | ^error: char47: .*"[\]ntype "$ | |
83 | EOF | |
84 | ||
85 | check_verify_failure '"type" line label check' | |
86 | ||
87 | ############################################################ | |
88 | # 5. type line eol check | |
89 | ||
90 | echo "object 779e9b33986b1c2670fff52c5067603117b3e895" >tag.sig | |
2aad957a | 91 | printf "type tagsssssssssssssssssssssssssssssss" >>tag.sig |
446c6fae RJ |
92 | |
93 | cat >expect.pat <<EOF | |
94 | ^error: char48: .*"[\]n"$ | |
95 | EOF | |
96 | ||
97 | check_verify_failure '"type" line eol check' | |
98 | ||
99 | ############################################################ | |
100 | # 6. tag line label check #1 | |
101 | ||
102 | cat >tag.sig <<EOF | |
103 | object 779e9b33986b1c2670fff52c5067603117b3e895 | |
104 | type tag | |
105 | xxx mytag | |
106 | EOF | |
107 | ||
108 | cat >expect.pat <<EOF | |
109 | ^error: char57: no "tag " found$ | |
110 | EOF | |
111 | ||
112 | check_verify_failure '"tag" line label check #1' | |
113 | ||
114 | ############################################################ | |
115 | # 7. tag line label check #2 | |
116 | ||
117 | cat >tag.sig <<EOF | |
118 | object 779e9b33986b1c2670fff52c5067603117b3e895 | |
119 | type taggggggggggggggggggggggggggggggg | |
120 | tag | |
121 | EOF | |
122 | ||
123 | cat >expect.pat <<EOF | |
124 | ^error: char87: no "tag " found$ | |
125 | EOF | |
126 | ||
127 | check_verify_failure '"tag" line label check #2' | |
128 | ||
129 | ############################################################ | |
130 | # 8. type line type-name length check | |
131 | ||
132 | cat >tag.sig <<EOF | |
133 | object 779e9b33986b1c2670fff52c5067603117b3e895 | |
134 | type taggggggggggggggggggggggggggggggg | |
135 | tag mytag | |
136 | EOF | |
137 | ||
138 | cat >expect.pat <<EOF | |
139 | ^error: char53: type too long$ | |
140 | EOF | |
141 | ||
142 | check_verify_failure '"type" line type-name length check' | |
143 | ||
144 | ############################################################ | |
145 | # 9. verify object (SHA1/type) check | |
146 | ||
147 | cat >tag.sig <<EOF | |
148 | object 779e9b33986b1c2670fff52c5067603117b3e895 | |
149 | type tagggg | |
150 | tag mytag | |
151 | EOF | |
152 | ||
153 | cat >expect.pat <<EOF | |
154 | ^error: char7: could not verify object.*$ | |
155 | EOF | |
156 | ||
157 | check_verify_failure 'verify object (SHA1/type) check' | |
158 | ||
159 | ############################################################ | |
160 | # 10. verify tag-name check | |
161 | ||
162 | cat >tag.sig <<EOF | |
163 | object $head | |
164 | type commit | |
165 | tag my tag | |
166 | EOF | |
167 | ||
168 | cat >expect.pat <<EOF | |
169 | ^error: char67: could not verify tag name$ | |
170 | EOF | |
171 | ||
172 | check_verify_failure 'verify tag-name check' | |
173 | ||
174 | ############################################################ | |
3dff5379 | 175 | # 11. tagger line label check #1 |
446c6fae RJ |
176 | |
177 | cat >tag.sig <<EOF | |
178 | object $head | |
179 | type commit | |
180 | tag mytag | |
181 | EOF | |
182 | ||
183 | cat >expect.pat <<EOF | |
184 | ^error: char70: could not find "tagger"$ | |
185 | EOF | |
186 | ||
187 | check_verify_failure '"tagger" line label check #1' | |
188 | ||
189 | ############################################################ | |
3dff5379 | 190 | # 12. tagger line label check #2 |
446c6fae RJ |
191 | |
192 | cat >tag.sig <<EOF | |
193 | object $head | |
194 | type commit | |
195 | tag mytag | |
196 | tagger | |
197 | EOF | |
198 | ||
199 | cat >expect.pat <<EOF | |
200 | ^error: char70: could not find "tagger"$ | |
201 | EOF | |
202 | ||
203 | check_verify_failure '"tagger" line label check #2' | |
204 | ||
205 | ############################################################ | |
206 | # 13. create valid tag | |
207 | ||
208 | cat >tag.sig <<EOF | |
209 | object $head | |
210 | type commit | |
211 | tag mytag | |
212 | tagger another@example.com | |
213 | EOF | |
214 | ||
215 | test_expect_success \ | |
216 | 'create valid tag' \ | |
217 | 'git-mktag <tag.sig >.git/refs/tags/mytag 2>message' | |
218 | ||
219 | ############################################################ | |
220 | # 14. check mytag | |
221 | ||
222 | test_expect_success \ | |
223 | 'check mytag' \ | |
224 | 'git-tag -l | grep mytag' | |
225 | ||
226 | ||
227 | test_done |