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