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
() {
16 test_expect_success
"$1" '
17 ( ! git-mktag <tag.sig 2>message ) &&
18 grep -q "$expect" message
22 ###########################################################
23 # first create a commit, so we have a valid object/type
26 git update-index
--add A
27 git-commit
-m "Initial commit"
28 head=$
(git rev-parse
--verify HEAD
)
30 ############################################################
37 check_verify_failure
'Tag object length check' \
38 '^error: .*size wrong.*$'
40 ############################################################
41 # 2. object line label check
44 xxxxxx 139e9b33986b1c2670fff52c5067603117b3e895
49 check_verify_failure
'"object" line label check' '^error: char0: .*"object "$'
51 ############################################################
52 # 3. object line SHA1 check
55 object zz9e9b33986b1c2670fff52c5067603117b3e895
60 check_verify_failure
'"object" line SHA1 check' '^error: char7: .*SHA1 hash$'
62 ############################################################
63 # 4. type line label check
66 object 779e9b33986b1c2670fff52c5067603117b3e895
71 check_verify_failure
'"type" line label check' '^error: char47: .*"\\ntype "$'
73 ############################################################
74 # 5. type line eol check
76 echo "object 779e9b33986b1c2670fff52c5067603117b3e895" >tag.sig
77 printf "type tagsssssssssssssssssssssssssssssss" >>tag.sig
79 check_verify_failure
'"type" line eol check' '^error: char48: .*"\\n"$'
81 ############################################################
82 # 6. tag line label check #1
85 object 779e9b33986b1c2670fff52c5067603117b3e895
90 check_verify_failure
'"tag" line label check #1' \
91 '^error: char57: no "tag " found$'
93 ############################################################
94 # 7. tag line label check #2
97 object 779e9b33986b1c2670fff52c5067603117b3e895
98 type taggggggggggggggggggggggggggggggg
102 check_verify_failure
'"tag" line label check #2' \
103 '^error: char87: no "tag " found$'
105 ############################################################
106 # 8. type line type-name length check
109 object 779e9b33986b1c2670fff52c5067603117b3e895
110 type taggggggggggggggggggggggggggggggg
114 check_verify_failure
'"type" line type-name length check' \
115 '^error: char53: type too long$'
117 ############################################################
118 # 9. verify object (SHA1/type) check
121 object 779e9b33986b1c2670fff52c5067603117b3e895
126 check_verify_failure
'verify object (SHA1/type) check' \
127 '^error: char7: could not verify object.*$'
129 ############################################################
130 # 10. verify tag-name check
138 check_verify_failure
'verify tag-name check' \
139 '^error: char67: could not verify tag name$'
141 ############################################################
142 # 11. tagger line label check #1
150 check_verify_failure
'"tagger" line label check #1' \
151 '^error: char70: could not find "tagger"$'
153 ############################################################
154 # 12. tagger line label check #2
163 check_verify_failure
'"tagger" line label check #2' \
164 '^error: char70: could not find "tagger"$'
166 ############################################################
167 # 13. create valid tag
173 tagger another@example.com
176 test_expect_success \
178 'git-mktag <tag.sig >.git/refs/tags/mytag 2>message'
180 ############################################################
183 test_expect_success \
185 'git-tag -l | grep mytag'