(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"for-each-ref test">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ VSub_Name "$TEST_DIRECTORY")) (/lib-gpg.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:datestamp) op:Equal rhs:{(1151968723)} spids:[34])]
      spids: [34]
    )
    (FuncDef
      name: setdate_and_increment
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GIT_COMMITTER_DATE)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$datestamp") (" +0200"))}
                  spids: [45]
                )
              ]
              spids: [45]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:datestamp)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(expr)} {(DQ ($ VSub_Name "$datestamp"))} {(Lit_Other "+")} {(1)})
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [53 63]
                      )
                    }
                  spids: [52]
                )
              ]
              spids: [52]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GIT_AUTHOR_DATE)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$datestamp") (" +0200"))}
                  spids: [66]
                )
              ]
              spids: [66]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:datestamp)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(expr)} {(DQ ($ VSub_Name "$datestamp"))} {(Lit_Other "+")} {(1)})
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [74 84]
                      )
                    }
                  spids: [73]
                )
              ]
              spids: [73]
            )
            (C {(export)} {(GIT_COMMITTER_DATE)} {(GIT_AUTHOR_DATE)})
          ]
          spids: [42]
        )
      spids: [37 41]
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <"\n"> <"\tsetdate_and_increment &&\n"> <"\techo \"Using $datestamp\" > one &&\n"> 
          <"\tgit add one &&\n"> <"\tgit commit -m \"Initial\" &&\n"> <"\tsetdate_and_increment &&\n"> 
          <"\tgit tag -a -m \"Tagging at $datestamp\" testtag &&\n"> <"\tgit update-ref refs/remotes/origin/master master &&\n"> <"\tgit remote add origin nowhere &&\n"> 
          <"\tgit config branch.master.remote origin &&\n"> <"\tgit config branch.master.merge refs/heads/master &&\n"> <"\tgit remote add myfork elsewhere &&\n"> 
          <"\tgit config remote.pushdefault myfork &&\n"> <"\tgit config push.default current\n">
        )
      }
    )
    (FuncDef
      name: test_atom
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number "$1"))}
              arms: [
                (case_arm
                  pat_list: [{(head)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ref)
                          op: Equal
                          rhs: {(refs/heads/master)}
                          spids: [137]
                        )
                      ]
                      spids: [137]
                    )
                  ]
                  spids: [134 135 140 -1]
                )
                (case_arm
                  pat_list: [{(tag)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ref)
                          op: Equal
                          rhs: {(refs/tags/testtag)}
                          spids: [146]
                        )
                      ]
                      spids: [146]
                    )
                  ]
                  spids: [143 144 149 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ref)
                          op: Equal
                          rhs: {($ VSub_Number "$1")}
                          spids: [155]
                        )
                      ]
                      spids: [155]
                    )
                  ]
                  spids: [152 153 158 -1]
                )
              ]
              spids: [125 131 161]
            )
            (SimpleCommand
              words: [{(printf)} {(SQ <"%s\\n">)} {(DQ ($ VSub_Number "$3"))}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[174])]
            )
            (C 
              {(test_expect_) 
                (BracedVarSub
                  token: <VSub_Number 4>
                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(success)})
                  spids: [179 183]
                )
              } {($ VSub_Name "$PREREQ")} {(DQ ("basic atom: ") ($ VSub_Number "$1") (" ") ($ VSub_Number "$2"))} 
              {
                (DQ ("\n") ("\t\tgit for-each-ref --format='%(") ($ VSub_Number "$2") (")' ") 
                  ($ VSub_Name "$ref") (" >actual &&\n") ("\t\tsanitize_pgp <actual >actual.clean &&\n") 
                  ("\t\ttest_cmp expected actual.clean\n") ("\t")
                )
              }
            )
          ]
          spids: [122]
        )
      spids: [118 121]
    )
    (C {(test_atom)} {(head)} {(refname)} {(refs/heads/master)})
    (C {(test_atom)} {(head)} {(refname) (Lit_Other ":") (short)} {(master)})
    (C {(test_atom)} {(head)} {(refname) (Lit_Other ":") (Lit_VarLike "strip=") (1)} {(heads/master)})
    (C {(test_atom)} {(head)} {(refname) (Lit_Other ":") (Lit_VarLike "strip=") (2)} {(master)})
    (C {(test_atom)} {(head)} {(upstream)} {(refs/remotes/origin/master)})
    (C {(test_atom)} {(head)} {(upstream) (Lit_Other ":") (short)} {(origin/master)})
    (C {(test_atom)} {(head)} {(push)} {(refs/remotes/myfork/master)})
    (C {(test_atom)} {(head)} {(push) (Lit_Other ":") (short)} {(myfork/master)})
    (C {(test_atom)} {(head)} {(objecttype)} {(commit)})
    (C {(test_atom)} {(head)} {(objectsize)} {(171)})
    (C {(test_atom)} {(head)} {(objectname)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(refs/heads/master)})])
          left_token: <Left_CommandSub "$(">
          spids: [307 313]
        )
      }
    )
    (C {(test_atom)} {(head)} {(objectname) (Lit_Other ":") (short)} 
      {
        (CommandSubPart
          command_list: 
            (CommandList
              children: [(C {(git)} {(rev-parse)} {(--short)} {(refs/heads/master)})]
            )
          left_token: <Left_CommandSub "$(">
          spids: [323 331]
        )
      }
    )
    (C {(test_atom)} {(head)} {(tree)} 
      {
        (CommandSubPart
          command_list: 
            (CommandList
              children: [
                (C {(git)} {(rev-parse)} 
                  {(refs/heads/master) (Lit_Other "^") (Lit_LBrace "{") (tree) (Lit_RBrace "}")}
                )
              ]
            )
          left_token: <Left_CommandSub "$(">
          spids: [339 349]
        )
      }
    )
    (C {(test_atom)} {(head)} {(parent)} {(SQ )})
    (C {(test_atom)} {(head)} {(numparent)} {(0)})
    (C {(test_atom)} {(head)} {(object)} {(SQ )})
    (C {(test_atom)} {(head)} {(type)} {(SQ )})
    (C {(test_atom)} {(head)} {(SQ <"*objectname">)} {(SQ )})
    (C {(test_atom)} {(head)} {(SQ <"*objecttype">)} {(SQ )})
    (C {(test_atom)} {(head)} {(author)} {(SQ <"A U Thor <author@example.com> 1151968724 +0200">)})
    (C {(test_atom)} {(head)} {(authorname)} {(SQ <"A U Thor">)})
    (C {(test_atom)} {(head)} {(authoremail)} {(SQ <"<author@example.com>">)})
    (C {(test_atom)} {(head)} {(authordate)} {(SQ <"Tue Jul 4 01:18:44 2006 +0200">)})
    (C {(test_atom)} {(head)} {(committer)} {(SQ <"C O Mitter <committer@example.com> 1151968723 +0200">)})
    (C {(test_atom)} {(head)} {(committername)} {(SQ <"C O Mitter">)})
    (C {(test_atom)} {(head)} {(committeremail)} {(SQ <"<committer@example.com>">)})
    (C {(test_atom)} {(head)} {(committerdate)} {(SQ <"Tue Jul 4 01:18:43 2006 +0200">)})
    (C {(test_atom)} {(head)} {(tag)} {(SQ )})
    (C {(test_atom)} {(head)} {(tagger)} {(SQ )})
    (C {(test_atom)} {(head)} {(taggername)} {(SQ )})
    (C {(test_atom)} {(head)} {(taggeremail)} {(SQ )})
    (C {(test_atom)} {(head)} {(taggerdate)} {(SQ )})
    (C {(test_atom)} {(head)} {(creator)} {(SQ <"C O Mitter <committer@example.com> 1151968723 +0200">)})
    (C {(test_atom)} {(head)} {(creatordate)} {(SQ <"Tue Jul 4 01:18:43 2006 +0200">)})
    (C {(test_atom)} {(head)} {(subject)} {(SQ <Initial>)})
    (C {(test_atom)} {(head)} {(contents) (Lit_Other ":") (subject)} {(SQ <Initial>)})
    (C {(test_atom)} {(head)} {(body)} {(SQ )})
    (C {(test_atom)} {(head)} {(contents) (Lit_Other ":") (body)} {(SQ )})
    (C {(test_atom)} {(head)} {(contents) (Lit_Other ":") (signature)} {(SQ )})
    (C {(test_atom)} {(head)} {(contents)} {(SQ <"Initial\n">)})
    (C {(test_atom)} {(head)} {(HEAD)} {(SQ <"*">)})
    (C {(test_atom)} {(tag)} {(refname)} {(refs/tags/testtag)})
    (C {(test_atom)} {(tag)} {(refname) (Lit_Other ":") (short)} {(testtag)})
    (C {(test_atom)} {(tag)} {(upstream)} {(SQ )})
    (C {(test_atom)} {(tag)} {(push)} {(SQ )})
    (C {(test_atom)} {(tag)} {(objecttype)} {(tag)})
    (C {(test_atom)} {(tag)} {(objectsize)} {(154)})
    (C {(test_atom)} {(tag)} {(objectname)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(refs/tags/testtag)})])
          left_token: <Left_CommandSub "$(">
          spids: [685 691]
        )
      }
    )
    (C {(test_atom)} {(tag)} {(objectname) (Lit_Other ":") (short)} 
      {
        (CommandSubPart
          command_list: 
            (CommandList
              children: [(C {(git)} {(rev-parse)} {(--short)} {(refs/tags/testtag)})]
            )
          left_token: <Left_CommandSub "$(">
          spids: [701 709]
        )
      }
    )
    (C {(test_atom)} {(tag)} {(tree)} {(SQ )})
    (C {(test_atom)} {(tag)} {(parent)} {(SQ )})
    (C {(test_atom)} {(tag)} {(numparent)} {(SQ )})
    (C {(test_atom)} {(tag)} {(object)} 
      {
        (CommandSubPart
          command_list: 
            (CommandList
              children: [(C {(git)} {(rev-parse)} {(refs/tags/testtag) (Lit_Other "^") (0)})]
            )
          left_token: <Left_CommandSub "$(">
          spids: [744 752]
        )
      }
    )
    (C {(test_atom)} {(tag)} {(type)} {(SQ <commit>)})
    (C {(test_atom)} {(tag)} {(SQ <"*objectname">)} {(SQ <ea122842f48be4afb2d1fc6a4b96c05885ab7463>)})
    (C {(test_atom)} {(tag)} {(SQ <"*objecttype">)} {(SQ <commit>)})
    (C {(test_atom)} {(tag)} {(author)} {(SQ )})
    (C {(test_atom)} {(tag)} {(authorname)} {(SQ )})
    (C {(test_atom)} {(tag)} {(authoremail)} {(SQ )})
    (C {(test_atom)} {(tag)} {(authordate)} {(SQ )})
    (C {(test_atom)} {(tag)} {(committer)} {(SQ )})
    (C {(test_atom)} {(tag)} {(committername)} {(SQ )})
    (C {(test_atom)} {(tag)} {(committeremail)} {(SQ )})
    (C {(test_atom)} {(tag)} {(committerdate)} {(SQ )})
    (C {(test_atom)} {(tag)} {(tag)} {(SQ <testtag>)})
    (C {(test_atom)} {(tag)} {(tagger)} {(SQ <"C O Mitter <committer@example.com> 1151968725 +0200">)})
    (C {(test_atom)} {(tag)} {(taggername)} {(SQ <"C O Mitter">)})
    (C {(test_atom)} {(tag)} {(taggeremail)} {(SQ <"<committer@example.com>">)})
    (C {(test_atom)} {(tag)} {(taggerdate)} {(SQ <"Tue Jul 4 01:18:45 2006 +0200">)})
    (C {(test_atom)} {(tag)} {(creator)} {(SQ <"C O Mitter <committer@example.com> 1151968725 +0200">)})
    (C {(test_atom)} {(tag)} {(creatordate)} {(SQ <"Tue Jul 4 01:18:45 2006 +0200">)})
    (C {(test_atom)} {(tag)} {(subject)} {(SQ <"Tagging at 1151968727">)})
    (C {(test_atom)} {(tag)} {(contents) (Lit_Other ":") (subject)} {(SQ <"Tagging at 1151968727">)})
    (C {(test_atom)} {(tag)} {(body)} {(SQ )})
    (C {(test_atom)} {(tag)} {(contents) (Lit_Other ":") (body)} {(SQ )})
    (C {(test_atom)} {(tag)} {(contents) (Lit_Other ":") (signature)} {(SQ )})
    (C {(test_atom)} {(tag)} {(contents)} {(SQ <"Tagging at 1151968727\n">)})
    (C {(test_atom)} {(tag)} {(HEAD)} {(SQ <" ">)})
    (C {(test_expect_success)} {(SQ <"Check invalid atoms names are errors">)} 
      {(SQ <"\n"> <"\ttest_must_fail git for-each-ref --format=\"%(INVALID)\" refs/heads\n">)}
    )
    (C {(test_expect_success)} {(SQ <"arguments to :strip must be positive integers">)} 
      {
        (SQ <"\n"> <"\ttest_must_fail git for-each-ref --format=\"%(refname:strip=0)\" &&\n"> 
          <"\ttest_must_fail git for-each-ref --format=\"%(refname:strip=-1)\" &&\n"> <"\ttest_must_fail git for-each-ref --format=\"%(refname:strip=foo)\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"stripping refnames too far gives an error">)} 
      {(SQ <"\n"> <"\ttest_must_fail git for-each-ref --format=\"%(refname:strip=3)\"\n">)}
    )
    (C {(test_expect_success)} {(SQ <"Check format specifiers are ignored in naming date atoms">)} 
      {
        (SQ <"\n"> <"\tgit for-each-ref --format=\"%(authordate)\" refs/heads &&\n"> 
          <"\tgit for-each-ref --format=\"%(authordate:default) %(authordate)\" refs/heads &&\n"> <"\tgit for-each-ref --format=\"%(authordate) %(authordate:default)\" refs/heads &&\n"> 
          <
"\tgit for-each-ref --format=\"%(authordate:default) %(authordate:default)\" refs/heads\n"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check valid format specifiers for date fields">)} 
      {
        (SQ <"\n"> <"\tgit for-each-ref --format=\"%(authordate:default)\" refs/heads &&\n"> 
          <"\tgit for-each-ref --format=\"%(authordate:relative)\" refs/heads &&\n"> <"\tgit for-each-ref --format=\"%(authordate:short)\" refs/heads &&\n"> 
          <"\tgit for-each-ref --format=\"%(authordate:local)\" refs/heads &&\n"> <"\tgit for-each-ref --format=\"%(authordate:iso8601)\" refs/heads &&\n"> 
          <"\tgit for-each-ref --format=\"%(authordate:rfc2822)\" refs/heads\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check invalid format specifiers are errors">)} 
      {
        (SQ <"\n"> 
          <"\ttest_must_fail git for-each-ref --format=\"%(authordate:INVALID)\" refs/heads\n">
        )
      }
    )
    (FuncDef
      name: test_date
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:f)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1094]
                    )
                  ]
                  spids: [1094]
                )
                (AndOr
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:committer_date)
                          op: Equal
                          rhs: {($ VSub_Number "$2")}
                          spids: [1100]
                        )
                      ]
                      spids: [1100]
                    )
                    (AndOr
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:author_date)
                              op: Equal
                              rhs: {($ VSub_Number "$3")}
                              spids: [1106]
                            )
                          ]
                          spids: [1106]
                        )
                        (AndOr
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tagger_date)
                                  op: Equal
                                  rhs: {($ VSub_Number "$4")}
                                  spids: [1112]
                                )
                              ]
                              spids: [1112]
                            )
                            (AndOr
                              children: [
                                (SimpleCommand
                                  words: [{(cat)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: -1
                                      arg_word: {(expected)}
                                      spids: [1120]
                                    )
                                    (HereDoc
                                      op_id: Redir_DLessDash
                                      fd: -1
                                      body: 
                                        {
                                          (DQ ("'refs/heads/master' '") 
                                            ($ VSub_Name "$committer_date") ("' '") ($ VSub_Name "$author_date") ("'\n") ("'refs/tags/testtag' '") ($ VSub_Name "$tagger_date") 
                                            ("'\n")
                                          )
                                        }
                                      do_expansion: True
                                      here_end: EOF
                                      was_filled: True
                                      spids: [1123]
                                    )
                                  ]
                                )
                                (AndOr
                                  children: [
                                    (Subshell
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(git)} {(for-each-ref)} {(--shell)} 
                                              {(--format) (Lit_Other "=") 
                                                (DQ ("%(refname) %(committerdate") 
                                                  (BracedVarSub
                                                    token: <VSub_Name f>
                                                    suffix_op: 
                                                      (StringUnary
                                                        op_id: VTest_ColonPlus
                                                        arg_word: {(":") ($ VSub_Name "$f")}
                                                      )
                                                    spids: [1152 1157]
                                                  ) (") %(authordate") 
                                                  (BracedVarSub
                                                    token: <VSub_Name f>
                                                    suffix_op: 
                                                      (StringUnary
                                                        op_id: VTest_ColonPlus
                                                        arg_word: {(":") ($ VSub_Name "$f")}
                                                      )
                                                    spids: [1159 1164]
                                                  ) (")")
                                                )
                                              } {(refs/heads)}
                                            )
                                            (C {(git)} {(for-each-ref)} {(--shell)} 
                                              {(--format) (Lit_Other "=") 
                                                (DQ ("%(refname) %(taggerdate") 
                                                  (BracedVarSub
                                                    token: <VSub_Name f>
                                                    suffix_op: 
                                                      (StringUnary
                                                        op_id: VTest_ColonPlus
                                                        arg_word: {(":") ($ VSub_Name "$f")}
                                                      )
                                                    spids: [1187 1192]
                                                  ) (")")
                                                )
                                              } {(refs/tags)}
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: -1
                                          arg_word: {(actual)}
                                          spids: [1203]
                                        )
                                      ]
                                      spids: [1137 1201]
                                    )
                                    (C {(test_cmp)} {(expected)} {(actual)})
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [1091]
        )
      spids: [1086 1090]
    )
    (C {(test_expect_success)} {(SQ <"Check unformatted date fields output">)} 
      {
        (SQ <"\n"> <"\ttest_date \"\" \\\n"> <"\t\t\"Tue Jul 4 01:18:43 2006 +0200\" \\\n"> 
          <"\t\t\"Tue Jul 4 01:18:44 2006 +0200\" \\\n"> <"\t\t\"Tue Jul 4 01:18:45 2006 +0200\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"default\" formatted date fields output">)} 
      {
        (SQ <"\n"> <"\ttest_date default \\\n"> <"\t\t\"Tue Jul 4 01:18:43 2006 +0200\" \\\n"> 
          <"\t\t\"Tue Jul 4 01:18:44 2006 +0200\" \\\n"> <"\t\t\"Tue Jul 4 01:18:45 2006 +0200\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"default-local\" date fields output">)} 
      {
        (SQ <"\n"> 
          <
"\ttest_date default-local \"Mon Jul 3 23:18:43 2006\" \"Mon Jul 3 23:18:44 2006\" \"Mon Jul 3 23:18:45 2006\"\n"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"relative\" date fields output">)} 
      {
        (SQ <"\n"> <"\tf=relative &&\n"> 
          <
"\t(git for-each-ref --shell --format=\"%(refname) %(committerdate:$f) %(authordate:$f)\" refs/heads &&\n"
          > <"\tgit for-each-ref --shell --format=\"%(refname) %(taggerdate:$f)\" refs/tags) >actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"relative-local\" date fields output">)} 
      {
        (SQ <"\n"> <"\ttest_date relative-local \\\n"> 
          <"\t\t\"$(git for-each-ref --format=\"%(committerdate:relative)\" refs/heads)\" \\\n"> <"\t\t\"$(git for-each-ref --format=\"%(authordate:relative)\" refs/heads)\" \\\n"> 
          <"\t\t\"$(git for-each-ref --format=\"%(taggerdate:relative)\" refs/tags)\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"short\" date fields output">)} 
      {(SQ <"\n"> <"\ttest_date short 2006-07-04 2006-07-04 2006-07-04\n">)}
    )
    (C {(test_expect_success)} {(SQ <"Check format \"short-local\" date fields output">)} 
      {(SQ <"\n"> <"\ttest_date short-local 2006-07-03 2006-07-03 2006-07-03\n">)}
    )
    (C {(test_expect_success)} {(SQ <"Check format \"local\" date fields output">)} 
      {
        (SQ <"\n"> <"\ttest_date local \\\n"> <"\t\t\"Mon Jul 3 23:18:43 2006\" \\\n"> 
          <"\t\t\"Mon Jul 3 23:18:44 2006\" \\\n"> <"\t\t\"Mon Jul 3 23:18:45 2006\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"iso8601\" date fields output">)} 
      {
        (SQ <"\n"> <"\ttest_date iso8601 \\\n"> <"\t\t\"2006-07-04 01:18:43 +0200\" \\\n"> 
          <"\t\t\"2006-07-04 01:18:44 +0200\" \\\n"> <"\t\t\"2006-07-04 01:18:45 +0200\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"iso8601-local\" date fields output">)} 
      {
        (SQ <"\n"> 
          <
"\ttest_date iso8601-local \"2006-07-03 23:18:43 +0000\" \"2006-07-03 23:18:44 +0000\" \"2006-07-03 23:18:45 +0000\"\n"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"rfc2822\" date fields output">)} 
      {
        (SQ <"\n"> <"\ttest_date rfc2822 \\\n"> <"\t\t\"Tue, 4 Jul 2006 01:18:43 +0200\" \\\n"> 
          <"\t\t\"Tue, 4 Jul 2006 01:18:44 +0200\" \\\n"> <"\t\t\"Tue, 4 Jul 2006 01:18:45 +0200\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"rfc2822-local\" date fields output">)} 
      {
        (SQ <"\n"> 
          <
"\ttest_date rfc2822-local \"Mon, 3 Jul 2006 23:18:43 +0000\" \"Mon, 3 Jul 2006 23:18:44 +0000\" \"Mon, 3 Jul 2006 23:18:45 +0000\"\n"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"raw\" date fields output">)} 
      {
        (SQ <"\n"> 
          <"\ttest_date raw \"1151968723 +0200\" \"1151968724 +0200\" \"1151968725 +0200\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format \"raw-local\" date fields output">)} 
      {
        (SQ <"\n"> 
          <
"\ttest_date raw-local \"1151968723 +0000\" \"1151968724 +0000\" \"1151968725 +0000\"\n"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format of strftime date fields">)} 
      {
        (SQ <"\n"> <"\techo \"my date is 2006-07-04\" >expected &&\n"> <"\tgit for-each-ref \\\n"> 
          <"\t  --format=\"%(authordate:format:my date is %Y-%m-%d)\" \\\n"> <"\t  refs/heads >actual &&\n"> <"\ttest_cmp expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check format of strftime-local date fields">)} 
      {
        (SQ <"\n"> <"\techo \"my date is 2006-07-03\" >expected &&\n"> <"\tgit for-each-ref \\\n"> 
          <"\t  --format=\"%(authordate:format-local:my date is %Y-%m-%d)\" \\\n"> <"\t  refs/heads >actual &&\n"> <"\ttest_cmp expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"exercise strftime with odd fields">)} 
      {
        (SQ <"\n"> <"\techo >expected &&\n"> 
          <"\tgit for-each-ref --format=\"%(authordate:format:)\" refs/heads >actual &&\n"> <"\ttest_cmp expected actual &&\n"> 
          <"\tlong=\"long format -- $_z40$_z40$_z40$_z40$_z40$_z40$_z40\" &&\n"> <"\techo $long >expected &&\n"> 
          <"\tgit for-each-ref --format=\"%(authordate:format:$long)\" refs/heads >actual &&\n"> <"\ttest_cmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[1473])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {("refs/heads/master\n") ("refs/remotes/origin/master\n") ("refs/tags/testtag\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [1476]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Verify ascending sort">)} 
      {
        (SQ <"\n"> <"\tgit for-each-ref --format=\"%(refname)\" --sort=refname >actual &&\n"> 
          <"\ttest_cmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[1497])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {("refs/tags/testtag\n") ("refs/remotes/origin/master\n") ("refs/heads/master\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [1500]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Verify descending sort">)} 
      {
        (SQ <"\n"> <"\tgit for-each-ref --format=\"%(refname)\" --sort=-refname >actual &&\n"> 
          <"\ttest_cmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[1520])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("'refs/heads/master'\n") ("'refs/remotes/origin/master'\n") ("'refs/tags/testtag'\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [1523]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Quoting style: shell">)} 
      {
        (SQ <"\n"> <"\tgit for-each-ref --shell --format=\"%(refname)\" >actual &&\n"> 
          <"\ttest_cmp expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Quoting style: perl">)} 
      {
        (SQ <"\n"> <"\tgit for-each-ref --perl --format=\"%(refname)\" >actual &&\n"> 
          <"\ttest_cmp expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Quoting style: python">)} 
      {
        (SQ <"\n"> <"\tgit for-each-ref --python --format=\"%(refname)\" >actual &&\n"> 
          <"\ttest_cmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[1569])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("\"refs/heads/master\"\n") ("\"refs/remotes/origin/master\"\n") 
              ("\"refs/tags/testtag\"\n")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [1572]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Quoting style: tcl">)} 
      {
        (SQ <"\n"> <"\tgit for-each-ref --tcl --format=\"%(refname)\" >actual &&\n"> 
          <"\ttest_cmp expected actual\n">
        )
      }
    )
    (ForEach
      iter_name: i
      iter_words: [
        {(DQ ("--perl --shell"))}
        {(DQ ("-s --python"))}
        {(DQ ("--python --tcl"))}
        {(DQ ("--tcl --perl"))}
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ("more than one quoting style: ") ($ VSub_Name "$i"))} 
              {
                (DQ ("\n") ("\t\tgit for-each-ref ") ($ VSub_Name "$i") (" 2>&1 | (read line &&\n") 
                  ("\t\tcase ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("line in\n") ("\t\t") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("error: more than one quoting style") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                  ("*) : happy;;\n") ("\t\t*) false\n") ("\t\tesac)\n") ("\t")
                )
              }
            )
          ]
          spids: [1613 1641]
        )
      spids: [1595 1611]
    )
    (C {(test_expect_success)} {(SQ <"setup for upstream:track[short]">)} 
      {(SQ <"\n"> <"\ttest_commit two\n">)}
    )
    (C {(test_atom)} {(head)} {(upstream) (Lit_Other ":") (track)} {(SQ <"[ahead 1]">)})
    (C {(test_atom)} {(head)} {(upstream) (Lit_Other ":") (trackshort)} {(SQ <">">)})
    (C {(test_atom)} {(head)} {(push) (Lit_Other ":") (track)} {(SQ <"[ahead 1]">)})
    (C {(test_atom)} {(head)} {(push) (Lit_Other ":") (trackshort)} {(SQ <">">)})
    (C {(test_expect_success)} {(SQ <"Check that :track[short] cannot be used with other atoms">)} 
      {
        (SQ <"\n"> 
          <"\ttest_must_fail git for-each-ref --format=\"%(refname:track)\" 2>/dev/null &&\n"> <"\ttest_must_fail git for-each-ref --format=\"%(refname:trackshort)\" 2>/dev/null\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check that :track[short] works when upstream is invalid">)} 
      {
        (SQ <"\n"> <"\tcat >expected <<-\\EOF &&\n"> <"\n"> <"\n"> <"\tEOF\n"> 
          <"\ttest_when_finished \"git config branch.master.merge refs/heads/master\" &&\n"> <"\tgit config branch.master.merge refs/heads/does-not-exist &&\n"> <"\tgit for-each-ref \\\n"> 
          <"\t\t--format=\"%(upstream:track)$LF%(upstream:trackshort)\" \\\n"> <"\t\trefs/heads >actual &&\n"> <"\ttest_cmp expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Check for invalid refname format">)} 
      {(SQ <"\n"> <"\ttest_must_fail git for-each-ref --format=\"%(refname:INVALID)\"\n">)}
    )
    (FuncDef
      name: get_color
      body: 
        (BraceGroup
          children: [(C {(git)} {(config)} {(--get-color)} {(no.such.slot)} {(DQ ($ VSub_Number "$1"))})]
          spids: [1756]
        )
      spids: [1751 1755]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[1776])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(git)} {(rev-parse)} {(--short)} {(refs/heads/master)})]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [1782 1790]
                ) (" ") 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_color)} {(green)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [1792 1796]
                ) (master) 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_color)} {(reset)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [1798 1802]
                ) ("\n") 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(git)} {(rev-parse)} {(--short)} {(refs/remotes/origin/master)})]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [1804 1812]
                ) (" ") 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_color)} {(green)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [1814 1818]
                ) (origin/master) 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_color)} {(reset)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [1820 1824]
                ) ("\n") 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(git)} {(rev-parse)} {(--short)} {(refs/tags/testtag)})]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [1826 1834]
                ) (" ") 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_color)} {(green)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [1836 1840]
                ) (testtag) 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_color)} {(reset)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [1842 1846]
                ) ("\n") 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(git)} {(rev-parse)} {(--short)} {(refs/tags/two)})]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [1848 1856]
                ) (" ") 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_color)} {(green)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [1858 1862]
                ) (two) 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_color)} {(reset)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [1864 1868]
                ) ("\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1779]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Check %(color:...) ">)} 
      {
        (SQ <"\n"> 
          <
"\tgit for-each-ref --format=\"%(objectname:short) %(color:green)%(refname:short)\" >actual &&\n"
          > <"\ttest_cmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[1886])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {("heads/master\n") ("tags/master\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [1889]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Check ambiguous head and tag refs (strict)">)} 
      {
        (SQ <"\n"> <"\tgit config --bool core.warnambiguousrefs true &&\n"> 
          <"\tgit checkout -b newtag &&\n"> <"\techo \"Using $datestamp\" > one &&\n"> <"\tgit add one &&\n"> <"\tgit commit -m \"Branch\" &&\n"> 
          <"\tsetdate_and_increment &&\n"> <"\tgit tag -m \"Tagging at $datestamp\" master &&\n"> 
          <
"\tgit for-each-ref --format \"%(refname:short)\" refs/heads/master refs/tags/master >actual &&\n"
          > <"\ttest_cmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[1916])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {("heads/master\n") ("master\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [1919]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Check ambiguous head and tag refs (loose)">)} 
      {
        (SQ <"\n"> <"\tgit config --bool core.warnambiguousrefs false &&\n"> 
          <
"\tgit for-each-ref --format \"%(refname:short)\" refs/heads/master refs/tags/master >actual &&\n"
          > <"\ttest_cmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[1940])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {("heads/ambiguous\n") ("ambiguous\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [1943]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Check ambiguous head and tag refs II (loose)">)} 
      {
        (SQ <"\n"> <"\tgit checkout master &&\n"> <"\tgit tag ambiguous testtag^0 &&\n"> 
          <"\tgit branch ambiguous testtag^0 &&\n"> 
          <
"\tgit for-each-ref --format \"%(refname:short)\" refs/heads/ambiguous refs/tags/ambiguous >actual &&\n"
          > <"\ttest_cmp expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"an unusual tag with an incomplete line">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit tag -m \"bogo\" bogo &&\n"> <"\tbogo=$(git cat-file tag bogo) &&\n"> 
          <"\tbogo=$(printf \"%s\" \"$bogo\" | git mktag) &&\n"> <"\tgit tag -f bogo \"$bogo\" &&\n"> <"\tgit for-each-ref --format \"%(body)\" refs/tags/bogo\n"> 
          <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"create tag with subject and body content">)} 
      {
        (SQ <"\n"> <"\tcat >>msg <<-\\EOF &&\n"> <"\t\tthe subject line\n"> <"\n"> 
          <"\t\tfirst body line\n"> <"\t\tsecond body line\n"> <"\tEOF\n"> <"\tgit tag -F msg subject-body\n">
        )
      }
    )
    (C {(test_atom)} {(refs/tags/subject-body)} {(subject)} {(SQ <"the subject line">)})
    (C {(test_atom)} {(refs/tags/subject-body)} {(body)} 
      {(SQ <"first body line\n"> <"second body line\n">)}
    )
    (C {(test_atom)} {(refs/tags/subject-body)} {(contents)} 
      {(SQ <"the subject line\n"> <"\n"> <"first body line\n"> <"second body line\n">)}
    )
    (C {(test_expect_success)} {(SQ <"create tag with multiline subject">)} 
      {
        (SQ <"\n"> <"\tcat >msg <<-\\EOF &&\n"> <"\t\tfirst subject line\n"> 
          <"\t\tsecond subject line\n"> <"\n"> <"\t\tfirst body line\n"> <"\t\tsecond body line\n"> <"\tEOF\n"> <"\tgit tag -F msg multiline\n">
        )
      }
    )
    (C {(test_atom)} {(refs/tags/multiline)} {(subject)} {(SQ <"first subject line second subject line">)})
    (C {(test_atom)} {(refs/tags/multiline)} {(contents) (Lit_Other ":") (subject)} 
      {(SQ <"first subject line second subject line">)}
    )
    (C {(test_atom)} {(refs/tags/multiline)} {(body)} {(SQ <"first body line\n"> <"second body line\n">)})
    (C {(test_atom)} {(refs/tags/multiline)} {(contents) (Lit_Other ":") (body)} 
      {(SQ <"first body line\n"> <"second body line\n">)}
    )
    (C {(test_atom)} {(refs/tags/multiline)} {(contents) (Lit_Other ":") (signature)} {(SQ )})
    (C {(test_atom)} {(refs/tags/multiline)} {(contents)} 
      {
        (SQ <"first subject line\n"> <"second subject line\n"> <"\n"> <"first body line\n"> 
          <"second body line\n">
        )
      }
    )
    (C {(test_expect_success)} {(GPG)} {(SQ <"create signed tags">)} 
      {
        (SQ <"\n"> <"\tgit tag -s -m \"\" signed-empty &&\n"> 
          <"\tgit tag -s -m \"subject line\" signed-short &&\n"> <"\tcat >msg <<-\\EOF &&\n"> <"\tsubject line\n"> <"\n"> <"\tbody contents\n"> <"\tEOF\n"> 
          <"\tgit tag -s -F msg signed-long\n">
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sig)
          op: Equal
          rhs: {(SQ <"-----BEGIN PGP SIGNATURE-----\n"> <"-----END PGP SIGNATURE-----\n">)}
          spids: [2145]
        )
      ]
      spids: [2145]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PREREQ) op:Equal rhs:{(GPG)} spids:[2152])]
      spids: [2152]
    )
    (C {(test_atom)} {(refs/tags/signed-empty)} {(subject)} {(SQ )})
    (C {(test_atom)} {(refs/tags/signed-empty)} {(contents) (Lit_Other ":") (subject)} {(SQ )})
    (C {(test_atom)} {(refs/tags/signed-empty)} {(body)} {(DQ ($ VSub_Name "$sig"))})
    (C {(test_atom)} {(refs/tags/signed-empty)} {(contents) (Lit_Other ":") (body)} {(SQ )})
    (C {(test_atom)} {(refs/tags/signed-empty)} {(contents) (Lit_Other ":") (signature)} 
      {(DQ ($ VSub_Name "$sig"))}
    )
    (C {(test_atom)} {(refs/tags/signed-empty)} {(contents)} {(DQ ($ VSub_Name "$sig"))})
    (C {(test_atom)} {(refs/tags/signed-short)} {(subject)} {(SQ <"subject line">)})
    (C {(test_atom)} {(refs/tags/signed-short)} {(contents) (Lit_Other ":") (subject)} 
      {(SQ <"subject line">)}
    )
    (C {(test_atom)} {(refs/tags/signed-short)} {(body)} {(DQ ($ VSub_Name "$sig"))})
    (C {(test_atom)} {(refs/tags/signed-short)} {(contents) (Lit_Other ":") (body)} {(SQ )})
    (C {(test_atom)} {(refs/tags/signed-short)} {(contents) (Lit_Other ":") (signature)} 
      {(DQ ($ VSub_Name "$sig"))}
    )
    (C {(test_atom)} {(refs/tags/signed-short)} {(contents)} 
      {(DQ ("subject line\n") ($ VSub_Name "$sig"))}
    )
    (C {(test_atom)} {(refs/tags/signed-long)} {(subject)} {(SQ <"subject line">)})
    (C {(test_atom)} {(refs/tags/signed-long)} {(contents) (Lit_Other ":") (subject)} 
      {(SQ <"subject line">)}
    )
    (C {(test_atom)} {(refs/tags/signed-long)} {(body)} {(DQ ("body contents\n") ($ VSub_Name "$sig"))})
    (C {(test_atom)} {(refs/tags/signed-long)} {(contents) (Lit_Other ":") (body)} 
      {(SQ <"body contents\n">)}
    )
    (C {(test_atom)} {(refs/tags/signed-long)} {(contents) (Lit_Other ":") (signature)} 
      {(DQ ($ VSub_Name "$sig"))}
    )
    (C {(test_atom)} {(refs/tags/signed-long)} {(contents)} 
      {(DQ ("subject line\n") ("\n") ("body contents\n") ($ VSub_Name "$sig"))}
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[2359])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(refs/tags/bogo)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [2365 2371]
                ) (" <committer@example.com> refs/tags/bogo\n") 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(git)} {(rev-parse)} {(refs/tags/master)})]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [2373 2379]
                ) (" <committer@example.com> refs/tags/master\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [2362]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"Verify sort with multiple keys">)} 
      {
        (SQ <"\n"> 
          <
"\tgit for-each-ref --format=\"%(objectname) %(taggeremail) %(refname)\" --sort=objectname --sort=taggeremail \\\n"
          > <"\t\trefs/tags/bogo refs/tags/master > actual &&\n"> <"\ttest_cmp expected actual\n">
        )
      }
    )
    (C {(test_done)})
  ]
)