5 test_description
='git-mktag: tag object verify test'
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.
14 check_verify_failure
() {
17 'git-mktag <tag.sig 2>message ||
18 grep -E -q -f expect.pat message'
21 ###########################################################
22 # first create a commit, so we have a valid object/type
25 git update-index
--add A
26 git-commit
-m "Initial commit"
27 head=$
(git rev-parse
--verify HEAD
)
29 ############################################################
37 ^error: .*size wrong.*$
40 check_verify_failure
'Tag object length check'
42 ############################################################
43 # 2. object line label check
46 xxxxxx 139e9b33986b1c2670fff52c5067603117b3e895
52 ^error: char0: .*"object "$
55 check_verify_failure
'"object" line label check'
57 ############################################################
58 # 3. object line SHA1 check
61 object zz9e9b33986b1c2670fff52c5067603117b3e895
67 ^error: char7: .*SHA1 hash$
70 check_verify_failure
'"object" line SHA1 check'
72 ############################################################
73 # 4. type line label check
76 object 779e9b33986b1c2670fff52c5067603117b3e895
82 ^error: char47: .*"[\]ntype "$
85 check_verify_failure
'"type" line label check'
87 ############################################################
88 # 5. type line eol check
90 echo "object 779e9b33986b1c2670fff52c5067603117b3e895" >tag.sig
91 printf "type tagsssssssssssssssssssssssssssssss" >>tag.sig
94 ^error: char48: .*"[\]n"$
97 check_verify_failure
'"type" line eol check'
99 ############################################################
100 # 6. tag line label check #1
103 object 779e9b33986b1c2670fff52c5067603117b3e895
108 cat >expect.pat
<<EOF
109 ^error: char57: no "tag " found$
112 check_verify_failure
'"tag" line label check #1'
114 ############################################################
115 # 7. tag line label check #2
118 object 779e9b33986b1c2670fff52c5067603117b3e895
119 type taggggggggggggggggggggggggggggggg
123 cat >expect.pat
<<EOF
124 ^error: char87: no "tag " found$
127 check_verify_failure
'"tag" line label check #2'
129 ############################################################
130 # 8. type line type-name length check
133 object 779e9b33986b1c2670fff52c5067603117b3e895
134 type taggggggggggggggggggggggggggggggg
138 cat >expect.pat
<<EOF
139 ^error: char53: type too long$
142 check_verify_failure
'"type" line type-name length check'
144 ############################################################
145 # 9. verify object (SHA1/type) check
148 object 779e9b33986b1c2670fff52c5067603117b3e895
153 cat >expect.pat
<<EOF
154 ^error: char7: could not verify object.*$
157 check_verify_failure
'verify object (SHA1/type) check'
159 ############################################################
160 # 10. verify tag-name check
168 cat >expect.pat
<<EOF
169 ^error: char67: could not verify tag name$
172 check_verify_failure
'verify tag-name check'
174 ############################################################
175 # 11. tagger line label check #1
183 cat >expect.pat
<<EOF
184 ^error: char70: could not find "tagger"$
187 check_verify_failure
'"tagger" line label check #1'
189 ############################################################
190 # 12. tagger line label check #2
199 cat >expect.pat
<<EOF
200 ^error: char70: could not find "tagger"$
203 check_verify_failure
'"tagger" line label check #2'
205 ############################################################
206 # 13. create valid tag
212 tagger another@example.com
215 test_expect_success \
217 'git-mktag <tag.sig >.git/refs/tags/mytag 2>message'
219 ############################################################
222 test_expect_success \
224 'git-tag -l | grep mytag'