#
#
-test_description='git-mktag: tag object verify test'
+test_description='git mktag: tag object verify test'
. ./test-lib.sh
check_verify_failure () {
expect="$2"
test_expect_success "$1" '
- ( test_must_fail git-mktag <tag.sig 2>message ) &&
+ ( test_must_fail git mktag <tag.sig 2>message ) &&
grep "$expect" message
'
}
###########################################################
# first create a commit, so we have a valid object/type
# for the tag.
-echo Hello >A
-git update-index --add A
-git-commit -m "Initial commit"
-head=$(git rev-parse --verify HEAD)
+test_expect_success 'setup' '
+ echo Hello >A &&
+ git update-index --add A &&
+ git commit -m "Initial commit" &&
+ head=$(git rev-parse --verify HEAD)
+'
############################################################
# 1. length check
'^error: char70: could not find "tagger "$'
############################################################
-# 13. detect missing tag author name
+# 13. disallow missing tag author name
cat >tag.sig <<EOF
object $head
This is filler
EOF
-check_verify_failure 'detect missing tag author name' \
+check_verify_failure 'disallow missing tag author name' \
'^error: char77: missing tagger name$'
############################################################
-# 14. detect missing tag author name
+# 14. disallow missing tag author name
cat >tag.sig <<EOF
object $head
EOF
-check_verify_failure 'detect malformed tagger' \
- '^error: char77: malformed tagger$'
+check_verify_failure 'disallow malformed tagger' \
+ '^error: char77: malformed tagger field$'
############################################################
# 15. allow empty tag email
test_expect_success \
'allow empty tag email' \
- 'git-mktag <tag.sig >.git/refs/tags/mytag 2>message'
+ 'git mktag <tag.sig >.git/refs/tags/mytag 2>message'
############################################################
-# 16. detect missing tag timestamp
+# 16. disallow spaces in tag email
cat >tag.sig <<EOF
object $head
type commit
tag mytag
-tagger T A Gger <tagger@example.com>
+tagger T A Gger <tag ger@example.com> 0 +0000
EOF
-check_verify_failure 'detect missing tag timestamp' \
- '^error: char107: malformed tag timestamp$'
+check_verify_failure 'disallow spaces in tag email' \
+ '^error: char77: malformed tagger field$'
############################################################
-# 17. detect invalid tag timestamp
+# 17. disallow missing tag timestamp
+
+tr '_' ' ' >tag.sig <<EOF
+object $head
+type commit
+tag mytag
+tagger T A Gger <tagger@example.com>__
+
+EOF
+
+check_verify_failure 'disallow missing tag timestamp' \
+ '^error: char107: missing tag timestamp$'
+
+############################################################
+# 18. detect invalid tag timestamp1
cat >tag.sig <<EOF
object $head
EOF
-check_verify_failure 'detect invalid tag timestamp' \
- '^error: char108: malformed tag timestamp$'
+check_verify_failure 'detect invalid tag timestamp1' \
+ '^error: char107: missing tag timestamp$'
############################################################
-# 18. detect invalid tag timezone
+# 19. detect invalid tag timestamp2
+
+cat >tag.sig <<EOF
+object $head
+type commit
+tag mytag
+tagger T A Gger <tagger@example.com> 2008-03-31T12:20:15-0500
+
+EOF
+
+check_verify_failure 'detect invalid tag timestamp2' \
+ '^error: char111: malformed tag timestamp$'
+
+############################################################
+# 20. detect invalid tag timezone1
cat >tag.sig <<EOF
object $head
EOF
-check_verify_failure 'detect invalid tag timezone' \
+check_verify_failure 'detect invalid tag timezone1' \
+ '^error: char118: malformed tag timezone$'
+
+############################################################
+# 21. detect invalid tag timezone2
+
+cat >tag.sig <<EOF
+object $head
+type commit
+tag mytag
+tagger T A Gger <tagger@example.com> 1206478233 + 30
+
+EOF
+
+check_verify_failure 'detect invalid tag timezone2' \
+ '^error: char118: malformed tag timezone$'
+
+############################################################
+# 22. detect invalid tag timezone3
+
+cat >tag.sig <<EOF
+object $head
+type commit
+tag mytag
+tagger T A Gger <tagger@example.com> 1206478233 -1430
+
+EOF
+
+check_verify_failure 'detect invalid tag timezone3' \
'^error: char118: malformed tag timezone$'
############################################################
-# 19. detect invalid header entry
+# 23. detect invalid header entry
cat >tag.sig <<EOF
object $head
'^error: char124: trailing garbage in tag header$'
############################################################
-# 20. create valid tag
+# 24. create valid tag
cat >tag.sig <<EOF
object $head
test_expect_success \
'create valid tag' \
- 'git-mktag <tag.sig >.git/refs/tags/mytag 2>message'
+ 'git mktag <tag.sig >.git/refs/tags/mytag 2>message'
############################################################
-# 21. check mytag
+# 25. check mytag
test_expect_success \
'check mytag' \
- 'git-tag -l | grep mytag'
+ 'git tag -l | grep mytag'
test_done