(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)})
  ]
)