(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git mktag: tag object verify test">)} spids: [10] ) ] spids: [10] ) (C {(.)} {(./test-lib.sh)}) (FuncDef name: check_verify_failure body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [42] ) ] spids: [42] ) (C {(test_expect_success)} {(DQ ($ VSub_Number "$1"))} { (SQ <"\n"> <"\t\t( test_must_fail git mktag <tag.sig 2>message ) &&\n"> <"\t\tgrep \"$expect\" message\n"> <"\t"> ) } ) ] spids: [39] ) spids: [34 38] ) (C {(test_expect_success)} {(SQ <setup>)} { (SQ <"\n"> <"\techo Hello >A &&\n"> <"\tgit update-index --add A &&\n"> <"\tgit commit -m \"Initial commit\" &&\n"> <"\thead=$(git rev-parse --verify HEAD)\n"> ) } ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[97]) (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ("too short for a tag\n"))} do_expansion: True here_end: EOF was_filled: True spids: [100] ) ] ) (C {(check_verify_failure)} {(SQ <"Tag object length check">)} {(SQ <"^error: .*size wrong.*$">)}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[127]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("xxxxxx 139e9b33986b1c2670fff52c5067603117b3e895\n") ("type tag\n") ("tag mytag\n") ("tagger . <> 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [130] ) ] ) (C {(check_verify_failure)} {(SQ <"\"object\" line label check">)} {(SQ <"^error: char0: .*\"object \"$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[159]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object zz9e9b33986b1c2670fff52c5067603117b3e895\n") ("type tag\n") ("tag mytag\n") ("tagger . <> 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [162] ) ] ) (C {(check_verify_failure)} {(SQ <"\"object\" line SHA1 check">)} {(SQ <"^error: char7: .*SHA1 hash$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[191]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object 779e9b33986b1c2670fff52c5067603117b3e895\n") ("xxxx tag\n") ("tag mytag\n") ("tagger . <> 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [194] ) ] ) (C {(check_verify_failure)} {(SQ <"\"type\" line label check">)} {(SQ <"^error: char47: .*\"\\\\ntype \"$">)} ) (SimpleCommand words: [{(echo)} {(DQ ("object 779e9b33986b1c2670fff52c5067603117b3e895"))}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[227])] ) (SimpleCommand words: [{(printf)} {(DQ ("type tagsssssssssssssssssssssssssssssss"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(tag.sig)} spids:[236])] ) (C {(check_verify_failure)} {(SQ <"\"type\" line eol check">)} {(SQ <"^error: char48: .*\"\\\\n\"$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[260]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object 779e9b33986b1c2670fff52c5067603117b3e895\n") ("type tag\n") ("xxx mytag\n") ("tagger . <> 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [263] ) ] ) (C {(check_verify_failure)} {(SQ <"\"tag\" line label check #1">)} {(SQ <"^error: char57: no \"tag \" found$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[294]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object 779e9b33986b1c2670fff52c5067603117b3e895\n") ("type taggggggggggggggggggggggggggggggg\n") ("tag\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [297] ) ] ) (C {(check_verify_failure)} {(SQ <"\"tag\" line label check #2">)} {(SQ <"^error: char87: no \"tag \" found$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[326]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object 779e9b33986b1c2670fff52c5067603117b3e895\n") ("type taggggggggggggggggggggggggggggggg\n") ("tag mytag\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [329] ) ] ) (C {(check_verify_failure)} {(SQ <"\"type\" line type-name length check">)} {(SQ <"^error: char53: type too long$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[358]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object 779e9b33986b1c2670fff52c5067603117b3e895\n") ("type tagggg\n") ("tag mytag\n") ("tagger . <> 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [361] ) ] ) (C {(check_verify_failure)} {(SQ <"verify object (SHA1/type) check">)} {(SQ <"^error: char7: could not verify object.*$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[392]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag my\ttag\n") ("tagger . <> 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [395] ) ] ) (C {(check_verify_failure)} {(SQ <"verify tag-name check">)} {(SQ <"^error: char67: could not verify tag name$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[428]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("\n") ("This is filler\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [431] ) ] ) (C {(check_verify_failure)} {(SQ <"\"tagger\" line label check #1">)} {(SQ <"^error: char70: could not find \"tagger \"$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[464]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger\n") ("\n") ("This is filler\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [467] ) ] ) (C {(check_verify_failure)} {(SQ <"\"tagger\" line label check #2">)} {(SQ <"^error: char70: could not find \"tagger \"$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[501]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger <> 0 +0000\n") ("\n") ("This is filler\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [504] ) ] ) (C {(check_verify_failure)} {(SQ <"disallow missing tag author name">)} {(SQ <"^error: char77: missing tagger name$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[538]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <\n") (" > 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [541] ) ] ) (C {(check_verify_failure)} {(SQ <"disallow malformed tagger">)} {(SQ <"^error: char77: malformed tagger field$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[575]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <> 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [578] ) ] ) (C {(test_expect_success)} {(SQ <"allow empty tag email">)} {(SQ <"git mktag <tag.sig >.git/refs/tags/mytag 2>message">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[613]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tag ger@example.com> 0 +0000\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [616] ) ] ) (C {(check_verify_failure)} {(SQ <"disallow spaces in tag email">)} {(SQ <"^error: char77: malformed tagger field$">)} ) (SimpleCommand words: [{(tr)} {(SQ <_>)} {(SQ <" ">)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[657]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tagger@example.com>__\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [660] ) ] ) (C {(check_verify_failure)} {(SQ <"disallow missing tag timestamp">)} {(SQ <"^error: char107: missing tag timestamp$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[693]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tagger@example.com> Tue Mar 25 15:47:44 2008\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [696] ) ] ) (C {(check_verify_failure)} {(SQ <"detect invalid tag timestamp1">)} {(SQ <"^error: char107: missing tag timestamp$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[729]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tagger@example.com> 2008-03-31T12:20:15-0500\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [732] ) ] ) (C {(check_verify_failure)} {(SQ <"detect invalid tag timestamp2">)} {(SQ <"^error: char111: malformed tag timestamp$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[765]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tagger@example.com> 1206478233 GMT\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [768] ) ] ) (C {(check_verify_failure)} {(SQ <"detect invalid tag timezone1">)} {(SQ <"^error: char118: malformed tag timezone$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[801]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tagger@example.com> 1206478233 + 30\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [804] ) ] ) (C {(check_verify_failure)} {(SQ <"detect invalid tag timezone2">)} {(SQ <"^error: char118: malformed tag timezone$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[837]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tagger@example.com> 1206478233 -1430\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [840] ) ] ) (C {(check_verify_failure)} {(SQ <"detect invalid tag timezone3">)} {(SQ <"^error: char118: malformed tag timezone$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[873]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tagger@example.com> 1206478233 -0500\n") ("this line should not be here\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [876] ) ] ) (C {(check_verify_failure)} {(SQ <"detect invalid header entry">)} {(SQ <"^error: char124: trailing garbage in tag header$">)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tag.sig)} spids:[910]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("object ") ($ VSub_Name "$head") ("\n") ("type commit\n") ("tag mytag\n") ("tagger T A Gger <tagger@example.com> 1206478233 -0500\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [913] ) ] ) (C {(test_expect_success)} {(SQ <"create valid tag">)} {(SQ <"git mktag <tag.sig >.git/refs/tags/mytag 2>message">)} ) (C {(test_expect_success)} {(SQ <"check mytag">)} {(SQ <"git tag -l | grep mytag">)}) (C {(test_done)}) ] )