(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: 
            {(SQ (Token id:Id.Lit_Chars val:'test for-each-refs usage of ref-filter APIs' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-gpg.sh)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup some history and refs' span_id:25))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:29) 
          (Token id:Id.Lit_Chars val:'\ttest_commit one &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\ttest_commit two &&\n' span_id:31) 
          (Token id:Id.Lit_Chars val:'\ttest_commit three &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\tgit checkout -b side &&\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'\ttest_commit four &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\tgit tag -m "An annotated tag" annotated-tag &&\n' span_id:35) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit tag -m "Annonated doubly" doubly-annotated-tag annotated-tag &&\n'
            span_id: 36
          ) (Token id:Id.Lit_Chars val:'\n' span_id:37) 
          (Token
            id: Id.Lit_Chars
            val: '\t# Note that these "signed" tags might not actually be signed.\n'
            span_id: 38
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t# Tests which care about the distinction should be marked\n'
            span_id: 39
          ) (Token id:Id.Lit_Chars val:'\t# with the GPG prereq.\n' span_id:40) 
          (Token id:Id.Lit_Chars val:'\tif test_have_prereq GPG\n' span_id:41) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\t\tsign=-s\n' span_id:43) (Token id:Id.Lit_Chars val:'\telse\n' span_id:44) (Token id:Id.Lit_Chars val:'\t\tsign=\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\tfi &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tgit tag $sign -m "A signed tag" signed-tag &&\n' span_id:47) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit tag $sign -m "Signed doubly" doubly-signed-tag signed-tag &&\n'
            span_id: 48
          ) (Token id:Id.Lit_Chars val:'\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\tgit update-ref refs/odd/spot master\n' span_id:51)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'filtering with --points-at' span_id:58))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:62) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\trefs/heads/master\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\trefs/odd/spot\n' span_id:65) (Token id:Id.Lit_Chars val:'\trefs/tags/three\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:67) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit for-each-ref --format="%(refname)" --points-at=master >actual &&\n'
            span_id: 68
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:69)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check signed tags with --points-at' span_id:76))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:80) 
          (Token id:Id.Lit_Chars val:'\tsed -e "s/Z$//" >expect <<-\\EOF &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\trefs/heads/side Z\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/annotated-tag four\n' span_id:83) (Token id:Id.Lit_Chars val:'\trefs/tags/four Z\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/signed-tag four\n' span_id:85) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:86) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --format="%(refname) %(*subject)" --points-at=side >actual &&\n'
            span_id: 87
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:88)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'filtering with --merged' span_id:95))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:99) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:100) (Token id:Id.Lit_Chars val:'\trefs/heads/master\n' span_id:101) 
          (Token id:Id.Lit_Chars val:'\trefs/odd/spot\n' span_id:102) (Token id:Id.Lit_Chars val:'\trefs/tags/one\n' span_id:103) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/three\n' span_id:104) (Token id:Id.Lit_Chars val:'\trefs/tags/two\n' span_id:105) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:106) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit for-each-ref --format="%(refname)" --merged=master >actual &&\n'
            span_id: 107
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:108)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'filtering with --no-merged' span_id:115))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\trefs/heads/side\n' span_id:121) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/annotated-tag\n' span_id:122) (Token id:Id.Lit_Chars val:'\trefs/tags/doubly-annotated-tag\n' span_id:123) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/doubly-signed-tag\n' span_id:124) (Token id:Id.Lit_Chars val:'\trefs/tags/four\n' span_id:125) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/signed-tag\n' span_id:126) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:127) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit for-each-ref --format="%(refname)" --no-merged=master >actual &&\n'
            span_id: 128
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:129)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'filtering with --contains' span_id:136))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:140) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\trefs/heads/master\n' span_id:142) 
          (Token id:Id.Lit_Chars val:'\trefs/heads/side\n' span_id:143) (Token id:Id.Lit_Chars val:'\trefs/odd/spot\n' span_id:144) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/annotated-tag\n' span_id:145) (Token id:Id.Lit_Chars val:'\trefs/tags/doubly-annotated-tag\n' span_id:146) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/doubly-signed-tag\n' span_id:147) (Token id:Id.Lit_Chars val:'\trefs/tags/four\n' span_id:148) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/signed-tag\n' span_id:149) (Token id:Id.Lit_Chars val:'\trefs/tags/three\n' span_id:150) 
          (Token id:Id.Lit_Chars val:'\trefs/tags/two\n' span_id:151) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:152) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit for-each-ref --format="%(refname)" --contains=two >actual &&\n'
            span_id: 153
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:154)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'%(color) must fail' span_id:161))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:165) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git for-each-ref --format="%(color)%(refname)"\n'
            span_id: 166
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'left alignment is default' span_id:173))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:177) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:178) (Token id:Id.Lit_Chars val:'\trefname is refs/heads/master  |refs/heads/master\n' span_id:179) 
          (Token
            id: Id.Lit_Chars
            val: '\trefname is refs/heads/side    |refs/heads/side\n'
            span_id: 180
          ) (Token id:Id.Lit_Chars val:'\trefname is refs/odd/spot      |refs/odd/spot\n' span_id:181) 
          (Token
            id: Id.Lit_Chars
            val: '\trefname is refs/tags/annotated-tag|refs/tags/annotated-tag\n'
            span_id: 182
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\trefname is refs/tags/doubly-annotated-tag|refs/tags/doubly-annotated-tag\n'
            span_id: 183
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\trefname is refs/tags/doubly-signed-tag|refs/tags/doubly-signed-tag\n'
            span_id: 184
          ) (Token id:Id.Lit_Chars val:'\trefname is refs/tags/four     |refs/tags/four\n' span_id:185) 
          (Token
            id: Id.Lit_Chars
            val: '\trefname is refs/tags/one      |refs/tags/one\n'
            span_id: 186
          ) (Token id:Id.Lit_Chars val:'\trefname is refs/tags/signed-tag|refs/tags/signed-tag\n' span_id:187) 
          (Token
            id: Id.Lit_Chars
            val: '\trefname is refs/tags/three    |refs/tags/three\n'
            span_id: 188
          ) (Token id:Id.Lit_Chars val:'\trefname is refs/tags/two      |refs/tags/two\n' span_id:189) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:190) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --format="%(align:30)refname is %(refname)%(end)|%(refname)" >actual &&\n'
            span_id: 191
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:192)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'middle alignment' span_id:199))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:203) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:204) (Token id:Id.Lit_Chars val:'\t| refname is refs/heads/master |refs/heads/master\n' span_id:205) 
          (Token
            id: Id.Lit_Chars
            val: '\t|  refname is refs/heads/side  |refs/heads/side\n'
            span_id: 206
          ) (Token id:Id.Lit_Chars val:'\t|   refname is refs/odd/spot   |refs/odd/spot\n' span_id:207) 
          (Token
            id: Id.Lit_Chars
            val: '\t|refname is refs/tags/annotated-tag|refs/tags/annotated-tag\n'
            span_id: 208
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t|refname is refs/tags/doubly-annotated-tag|refs/tags/doubly-annotated-tag\n'
            span_id: 209
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t|refname is refs/tags/doubly-signed-tag|refs/tags/doubly-signed-tag\n'
            span_id: 210
          ) (Token id:Id.Lit_Chars val:'\t|  refname is refs/tags/four   |refs/tags/four\n' span_id:211) 
          (Token
            id: Id.Lit_Chars
            val: '\t|   refname is refs/tags/one   |refs/tags/one\n'
            span_id: 212
          ) (Token id:Id.Lit_Chars val:'\t|refname is refs/tags/signed-tag|refs/tags/signed-tag\n' span_id:213) 
          (Token
            id: Id.Lit_Chars
            val: '\t|  refname is refs/tags/three  |refs/tags/three\n'
            span_id: 214
          ) (Token id:Id.Lit_Chars val:'\t|   refname is refs/tags/two   |refs/tags/two\n' span_id:215) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:216) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --format="|%(align:middle,30)refname is %(refname)%(end)|%(refname)" >actual &&\n'
            span_id: 217
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:218)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'right alignment' span_id:225))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:229) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:230) (Token id:Id.Lit_Chars val:'\t|  refname is refs/heads/master|refs/heads/master\n' span_id:231) 
          (Token
            id: Id.Lit_Chars
            val: '\t|    refname is refs/heads/side|refs/heads/side\n'
            span_id: 232
          ) (Token id:Id.Lit_Chars val:'\t|      refname is refs/odd/spot|refs/odd/spot\n' span_id:233) 
          (Token
            id: Id.Lit_Chars
            val: '\t|refname is refs/tags/annotated-tag|refs/tags/annotated-tag\n'
            span_id: 234
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t|refname is refs/tags/doubly-annotated-tag|refs/tags/doubly-annotated-tag\n'
            span_id: 235
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t|refname is refs/tags/doubly-signed-tag|refs/tags/doubly-signed-tag\n'
            span_id: 236
          ) (Token id:Id.Lit_Chars val:'\t|     refname is refs/tags/four|refs/tags/four\n' span_id:237) 
          (Token
            id: Id.Lit_Chars
            val: '\t|      refname is refs/tags/one|refs/tags/one\n'
            span_id: 238
          ) (Token id:Id.Lit_Chars val:'\t|refname is refs/tags/signed-tag|refs/tags/signed-tag\n' span_id:239) 
          (Token
            id: Id.Lit_Chars
            val: '\t|    refname is refs/tags/three|refs/tags/three\n'
            span_id: 240
          ) (Token id:Id.Lit_Chars val:'\t|      refname is refs/tags/two|refs/tags/two\n' span_id:241) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:242) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --format="|%(align:30,right)refname is %(refname)%(end)|%(refname)" >actual &&\n'
            span_id: 243
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:244)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:250)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:253)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:254)) 
              (OF)
            }
          here_end_span_id: 268
          stdin_parts: [
            ('|       refname is refs/heads/master       |refs/heads/master\n')
            ('|        refname is refs/heads/side        |refs/heads/side\n')
            ('|         refname is refs/odd/spot         |refs/odd/spot\n')
            ('|    refname is refs/tags/annotated-tag    |refs/tags/annotated-tag\n')
            ('|refname is refs/tags/doubly-annotated-tag |refs/tags/doubly-annotated-tag\n')
            ('|  refname is refs/tags/doubly-signed-tag  |refs/tags/doubly-signed-tag\n')
            ('|        refname is refs/tags/four         |refs/tags/four\n')
            ('|         refname is refs/tags/one         |refs/tags/one\n')
            ('|     refname is refs/tags/signed-tag      |refs/tags/signed-tag\n')
            ('|        refname is refs/tags/three        |refs/tags/three\n')
            ('|         refname is refs/tags/two         |refs/tags/two\n')
          ]
        )
      ]
    )
    (command.ShFunction
      name: test_align_permutations
      body: 
        (command.BraceGroup
          children: [
            (command.WhileUntil
              keyword: (Token id:Id.KW_While val:while span_id:277)
              cond: [(C {(read)} {(-r)} {(option)})]
              body: 
                (command.DoGroup
                  children: [
                    (C {(test_expect_success)} {(DQ ('align:') ($ Id.VSub_DollarName '$option'))} 
                      {
                        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:297) 
                          (Token
                            id: Id.Lit_Chars
                            val: 
'\t\t\tgit for-each-ref --format="|%(align:$option)refname is %(refname)%(end)|%(refname)" >actual &&\n'
                            span_id: 298
                          ) (Token id:Id.Lit_Chars val:'\t\t\ttest_cmp expect actual\n' span_id:299) 
                          (Token id:Id.Lit_Chars val:'\t\t' span_id:300)
                        )
                      }
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.Simple
      words: [{(test_align_permutations)}]
      redirects: [
        (redir.HereDoc
          op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:311)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:312)) 
              (OF)
            }
          here_end_span_id: 323
          stdin_parts: [
            ('middle,42\n')
            ('42,middle\n')
            ('position=middle,42\n')
            ('42,position=middle\n')
            ('middle,width=42\n')
            ('width=42,middle\n')
            ('position=middle,width=42\n')
            ('width=42,position=middle\n')
          ]
        )
      ]
    )
    (command.Simple
      words: [{(test_align_permutations)}]
      redirects: [
        (redir.HereDoc
          op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:331)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:332)) 
              (OF)
            }
          here_end_span_id: 339
          stdin_parts: [
            ('32,width=42,middle\n')
            ('width=30,42,middle\n')
            ('width=42,position=right,middle\n')
            ('42,right,position=middle\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'alignment with format quote' span_id:348))} 
      {
        (DQ ('\n') ('\tcat >expect <<-') (Id.Lit_Other '\\') ('EOF &&\n') ("\t|'      '") 
          (Id.Lit_Other '\\') ("''master| A U Thor'") (Id.Lit_Other '\\') ("''      '|\n") ("\t|'       '") (Id.Lit_Other '\\') 
          ("''side| A U Thor'") (Id.Lit_Other '\\') ("''       '|\n") ("\t|'     '") (Id.Lit_Other '\\') ("''odd/spot| A U Thor'") 
          (Id.Lit_Other '\\') ("''     '|\n") ("\t|'      '") (Id.Lit_Other '\\') ("''annotated-tag| '") (Id.Lit_Other '\\') 
          ("''       '|\n") ("\t|'   '") (Id.Lit_Other '\\') ("''doubly-annotated-tag| '") (Id.Lit_Other '\\') ("''   '|\n") 
          ("\t|'    '") (Id.Lit_Other '\\') ("''doubly-signed-tag| '") (Id.Lit_Other '\\') ("''     '|\n") ("\t|'       '") 
          (Id.Lit_Other '\\') ("''four| A U Thor'") (Id.Lit_Other '\\') ("''       '|\n") ("\t|'       '") (Id.Lit_Other '\\') 
          ("''one| A U Thor'") (Id.Lit_Other '\\') ("''        '|\n") ("\t|'        '") (Id.Lit_Other '\\') ("''signed-tag| '") 
          (Id.Lit_Other '\\') ("''        '|\n") ("\t|'      '") (Id.Lit_Other '\\') ("''three| A U Thor'") (Id.Lit_Other '\\') 
          ("''       '|\n") ("\t|'       '") (Id.Lit_Other '\\') ("''two| A U Thor'") (Id.Lit_Other '\\') ("''        '|\n") 
          ('\tEOF\n') ('\tgit for-each-ref --shell --format=') 
          (word_part.EscapedLiteral
            token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:413)
          ) ("|%(align:30,middle)'%(refname:short)| %(authorname)'%(end)|") 
          (word_part.EscapedLiteral
            token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:415)
          ) (' >actual &&\n') ('\ttest_cmp expect actual\n')
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'nested alignment with quote formatting' span_id:424))} 
      {
        (DQ ('\n') ('\tcat >expect <<-') (Id.Lit_Other '\\') ('EOF &&\n') 
          ("\t|'         master               '|\n") ("\t|'           side               '|\n") ("\t|'       odd/spot               '|\n") 
          ("\t|'  annotated-tag               '|\n") ("\t|'doubly-annotated-tag          '|\n") ("\t|'doubly-signed-tag             '|\n") 
          ("\t|'           four               '|\n") ("\t|'            one               '|\n") ("\t|'     signed-tag               '|\n") 
          ("\t|'          three               '|\n") ("\t|'            two               '|\n") ('\tEOF\n') 
          (
"\tgit for-each-ref --shell --format='|%(align:30,left)%(align:15,right)%(refname:short)%(end)%(end)|' >actual &&\n"
          ) ('\ttest_cmp expect actual\n')
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check `%(contents:lines=1)`' span_id:452))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:456) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:457) (Token id:Id.Lit_Chars val:'\tmaster |three\n' span_id:458) 
          (Token id:Id.Lit_Chars val:'\tside |four\n' span_id:459) (Token id:Id.Lit_Chars val:'\todd/spot |three\n' span_id:460) 
          (Token id:Id.Lit_Chars val:'\tannotated-tag |An annotated tag\n' span_id:461) (Token id:Id.Lit_Chars val:'\tdoubly-annotated-tag |Annonated doubly\n' span_id:462) 
          (Token id:Id.Lit_Chars val:'\tdoubly-signed-tag |Signed doubly\n' span_id:463) (Token id:Id.Lit_Chars val:'\tfour |four\n' span_id:464) 
          (Token id:Id.Lit_Chars val:'\tone |one\n' span_id:465) (Token id:Id.Lit_Chars val:'\tsigned-tag |A signed tag\n' span_id:466) 
          (Token id:Id.Lit_Chars val:'\tthree |three\n' span_id:467) (Token id:Id.Lit_Chars val:'\ttwo |two\n' span_id:468) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:469) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit for-each-ref --format="%(refname:short) |%(contents:lines=1)" >actual &&\n'
            span_id: 470
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:471)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check `%(contents:lines=0)`' span_id:478))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:482) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:483) (Token id:Id.Lit_Chars val:'\tmaster |\n' span_id:484) 
          (Token id:Id.Lit_Chars val:'\tside |\n' span_id:485) (Token id:Id.Lit_Chars val:'\todd/spot |\n' span_id:486) 
          (Token id:Id.Lit_Chars val:'\tannotated-tag |\n' span_id:487) (Token id:Id.Lit_Chars val:'\tdoubly-annotated-tag |\n' span_id:488) 
          (Token id:Id.Lit_Chars val:'\tdoubly-signed-tag |\n' span_id:489) (Token id:Id.Lit_Chars val:'\tfour |\n' span_id:490) 
          (Token id:Id.Lit_Chars val:'\tone |\n' span_id:491) (Token id:Id.Lit_Chars val:'\tsigned-tag |\n' span_id:492) 
          (Token id:Id.Lit_Chars val:'\tthree |\n' span_id:493) (Token id:Id.Lit_Chars val:'\ttwo |\n' span_id:494) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:495) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit for-each-ref --format="%(refname:short) |%(contents:lines=0)" >actual &&\n'
            span_id: 496
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:497)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check `%(contents:lines=99999)`' span_id:504))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:508) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:509) (Token id:Id.Lit_Chars val:'\tmaster |three\n' span_id:510) 
          (Token id:Id.Lit_Chars val:'\tside |four\n' span_id:511) (Token id:Id.Lit_Chars val:'\todd/spot |three\n' span_id:512) 
          (Token id:Id.Lit_Chars val:'\tannotated-tag |An annotated tag\n' span_id:513) (Token id:Id.Lit_Chars val:'\tdoubly-annotated-tag |Annonated doubly\n' span_id:514) 
          (Token id:Id.Lit_Chars val:'\tdoubly-signed-tag |Signed doubly\n' span_id:515) (Token id:Id.Lit_Chars val:'\tfour |four\n' span_id:516) 
          (Token id:Id.Lit_Chars val:'\tone |one\n' span_id:517) (Token id:Id.Lit_Chars val:'\tsigned-tag |A signed tag\n' span_id:518) 
          (Token id:Id.Lit_Chars val:'\tthree |three\n' span_id:519) (Token id:Id.Lit_Chars val:'\ttwo |two\n' span_id:520) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:521) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --format="%(refname:short) |%(contents:lines=99999)" >actual &&\n'
            span_id: 522
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:523)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'`%(contents:lines=-1)` should fail' span_id:530))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:534) 
          (Token
            id: Id.Lit_Chars
            val: 
'\ttest_must_fail git for-each-ref --format="%(refname:short) |%(contents:lines=-1)"\n'
            span_id: 535
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup for version sort' span_id:542))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:546) 
          (Token id:Id.Lit_Chars val:'\ttest_commit foo1.3 &&\n' span_id:547) (Token id:Id.Lit_Chars val:'\ttest_commit foo1.6 &&\n' span_id:548) 
          (Token id:Id.Lit_Chars val:'\ttest_commit foo1.10\n' span_id:549)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'version sort' span_id:556))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:560) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --sort=version:refname --format="%(refname:short)" refs/tags/ | grep "foo" >actual &&\n'
            span_id: 561
          ) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:562) 
          (Token id:Id.Lit_Chars val:'\tfoo1.3\n' span_id:563) (Token id:Id.Lit_Chars val:'\tfoo1.6\n' span_id:564) 
          (Token id:Id.Lit_Chars val:'\tfoo1.10\n' span_id:565) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:566) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:567)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'version sort (shortened)' span_id:574))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:578) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --sort=v:refname --format="%(refname:short)" refs/tags/ | grep "foo" >actual &&\n'
            span_id: 579
          ) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:580) 
          (Token id:Id.Lit_Chars val:'\tfoo1.3\n' span_id:581) (Token id:Id.Lit_Chars val:'\tfoo1.6\n' span_id:582) 
          (Token id:Id.Lit_Chars val:'\tfoo1.10\n' span_id:583) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:584) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:585)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'reverse version sort' span_id:592))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:596) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --sort=-version:refname --format="%(refname:short)" refs/tags/ | grep "foo" >actual &&\n'
            span_id: 597
          ) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:598) 
          (Token id:Id.Lit_Chars val:'\tfoo1.10\n' span_id:599) (Token id:Id.Lit_Chars val:'\tfoo1.6\n' span_id:600) 
          (Token id:Id.Lit_Chars val:'\tfoo1.3\n' span_id:601) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:602) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:603)
        )
      }
    )
    (C {(test_done)})
  ]
)