From 1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sat, 11 Jan 2020 23:36:56 +0000 Subject: Squashed 'third_party/git/' content from commit cb71568594 git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7 --- t/t3800-mktag.sh | 365 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 365 insertions(+) create mode 100755 t/t3800-mktag.sh (limited to 't/t3800-mktag.sh') diff --git a/t/t3800-mktag.sh b/t/t3800-mktag.sh new file mode 100755 index 0000000000..8eb47942e2 --- /dev/null +++ b/t/t3800-mktag.sh @@ -0,0 +1,365 @@ +#!/bin/sh +# +# + +test_description='git mktag: tag object verify test' + +. ./test-lib.sh + +########################################################### +# check the tag.sig file, expecting verify_tag() to fail, +# and checking that the error message matches the pattern +# given in the expect.pat file. + +check_verify_failure () { + expect="$2" + test_expect_success "$1" ' + ( test_must_fail git mktag message ) && + grep "$expect" message + ' +} + +########################################################### +# first create a commit, so we have a valid object/type +# for the tag. +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 + +cat >tag.sig <tag.sig < 0 +0000 + +EOF + +check_verify_failure '"object" line label check' '^error: char0: .*"object "$' + +############################################################ +# 3. object line SHA1 check + +cat >tag.sig < 0 +0000 + +EOF + +check_verify_failure '"object" line SHA1 check' '^error: char7: .*SHA1 hash$' + +############################################################ +# 4. type line label check + +cat >tag.sig < 0 +0000 + +EOF + +check_verify_failure '"type" line label check' '^error: char47: .*"\\ntype "$' + +############################################################ +# 5. type line eol check + +echo "object 779e9b33986b1c2670fff52c5067603117b3e895" >tag.sig +printf "type tagsssssssssssssssssssssssssssssss" >>tag.sig + +check_verify_failure '"type" line eol check' '^error: char48: .*"\\n"$' + +############################################################ +# 6. tag line label check #1 + +cat >tag.sig < 0 +0000 + +EOF + +check_verify_failure '"tag" line label check #1' \ + '^error: char57: no "tag " found$' + +############################################################ +# 7. tag line label check #2 + +cat >tag.sig <tag.sig <tag.sig < 0 +0000 + +EOF + +check_verify_failure 'verify object (SHA1/type) check' \ + '^error: char7: could not verify object.*$' + +############################################################ +# 10. verify tag-name check + +cat >tag.sig < 0 +0000 + +EOF + +check_verify_failure 'verify tag-name check' \ + '^error: char67: could not verify tag name$' + +############################################################ +# 11. tagger line label check #1 + +cat >tag.sig <tag.sig <tag.sig < 0 +0000 + +This is filler +EOF + +check_verify_failure 'disallow missing tag author name' \ + '^error: char77: missing tagger name$' + +############################################################ +# 14. disallow missing tag author name + +cat >tag.sig < 0 +0000 + +EOF + +check_verify_failure 'disallow malformed tagger' \ + '^error: char77: malformed tagger field$' + +############################################################ +# 15. allow empty tag email + +cat >tag.sig < 0 +0000 + +EOF + +test_expect_success \ + 'allow empty tag email' \ + 'git mktag .git/refs/tags/mytag 2>message' + +############################################################ +# 16. disallow spaces in tag email + +cat >tag.sig < 0 +0000 + +EOF + +check_verify_failure 'disallow spaces in tag email' \ + '^error: char77: malformed tagger field$' + +############################################################ +# 17. disallow missing tag timestamp + +tr '_' ' ' >tag.sig <__ + +EOF + +check_verify_failure 'disallow missing tag timestamp' \ + '^error: char107: missing tag timestamp$' + +############################################################ +# 18. detect invalid tag timestamp1 + +cat >tag.sig < Tue Mar 25 15:47:44 2008 + +EOF + +check_verify_failure 'detect invalid tag timestamp1' \ + '^error: char107: missing tag timestamp$' + +############################################################ +# 19. detect invalid tag timestamp2 + +cat >tag.sig < 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 < 1206478233 GMT + +EOF + +check_verify_failure 'detect invalid tag timezone1' \ + '^error: char118: malformed tag timezone$' + +############################################################ +# 21. detect invalid tag timezone2 + +cat >tag.sig < 1206478233 + 30 + +EOF + +check_verify_failure 'detect invalid tag timezone2' \ + '^error: char118: malformed tag timezone$' + +############################################################ +# 22. detect invalid tag timezone3 + +cat >tag.sig < 1206478233 -1430 + +EOF + +check_verify_failure 'detect invalid tag timezone3' \ + '^error: char118: malformed tag timezone$' + +############################################################ +# 23. detect invalid header entry + +cat >tag.sig < 1206478233 -0500 +this line should not be here + +EOF + +check_verify_failure 'detect invalid header entry' \ + '^error: char124: trailing garbage in tag header$' + +############################################################ +# 24. create valid tag + +cat >tag.sig < 1206478233 -0500 + +EOF + +test_expect_success \ + 'create valid tag' \ + 'git mktag .git/refs/tags/mytag 2>message' + +############################################################ +# 25. check mytag + +test_expect_success \ + 'check mytag' \ + 'git tag -l | grep mytag' + + +test_done -- cgit 1.4.1