(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 --stat output of various commands' span_id:15))} spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-terminal.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:name) op: assign_op.Equal rhs: {(aaaaaaaaaa)} spids: [34] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:name) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') } spids: [37] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:preparation span_id:54))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:58) (Token id:Id.Lit_Chars val:'\t>"$name" &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\tgit add "$name" &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\tgit commit -m message &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\techo a >"$name" &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\tgit commit -m message "$name"\n' span_id:63) ) } ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:67) cond: [(C {(read)} {(cmd)} {(args)})] body: (command.DoGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:80) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:83) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:85))} here_end_span_id: 89 stdin_parts: [ ( ' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n' ) ] ) ] ) (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (': small change with long name gives more space to the name') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:99) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args >output &&\n' span_id: 100 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:101) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 102 ) (Token id:Id.Lit_Chars val:'\t' span_id:103) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:110) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:113) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:115))} here_end_span_id: 119 stdin_parts: [(' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n')] ) ] ) (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' --stat=width: a long name is given more room when the bar is short') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:129) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat=40 >output &&\n' span_id: 130 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:131) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 132 ) (Token id:Id.Lit_Chars val:'\t' span_id:133) ) } ) (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat-width=width with long name'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:146) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat-width=40 >output &&\n' span_id: 147 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:148) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 149 ) (Token id:Id.Lit_Chars val:'\t' span_id:150) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:157) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:160) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:162))} here_end_span_id: 166 stdin_parts: [(' ...aaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n')] ) ] ) (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat=...,name-width with long name'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:176) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat=60,30 >output &&\n' span_id: 177 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:178) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 179 ) (Token id:Id.Lit_Chars val:'\t' span_id:180) ) } ) (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat-name-width with long name'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:193) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat-name-width=30 >output &&\n' span_id: 194 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:195) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 196 ) (Token id:Id.Lit_Chars val:'\t' span_id:197) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:202) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:203)) (OF) } here_end_span_id: 210 stdin_parts: [ ('format-patch -1 --stdout\n') ('diff HEAD^ HEAD --stat\n') ('show --stat\n') ('log -1 --stat\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'preparation for big change tests' span_id:216))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:220) (Token id:Id.Lit_Chars val:'\t>abcd &&\n' span_id:221) (Token id:Id.Lit_Chars val:'\tgit add abcd &&\n' span_id:222) (Token id:Id.Lit_Chars val:'\tgit commit -m message &&\n' span_id:223) (Token id:Id.Lit_Chars val:'\ti=0 &&\n' span_id:224) (Token id:Id.Lit_Chars val:'\twhile test $i -lt 1000\n' span_id:225) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:226) (Token id:Id.Lit_Chars val:'\t\techo $i && i=$(($i + 1))\n' span_id:227) (Token id:Id.Lit_Chars val:'\tdone >abcd &&\n' span_id:228) (Token id:Id.Lit_Chars val:'\tgit commit -m message abcd\n' span_id:229) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:235) fd: -1 arg_word: {(expect80)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:238) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:240))} here_end_span_id: 244 stdin_parts: [ (' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:247) fd: -1 arg_word: {(expect80-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:250) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:252))} here_end_span_id: 256 stdin_parts: [ ('| abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:259) fd: -1 arg_word: {(expect200)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:262) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:264))} here_end_span_id: 268 stdin_parts: [ ( ' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n' ) ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:271) fd: -1 arg_word: {(expect200-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:274) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:276))} here_end_span_id: 280 stdin_parts: [ ( '| abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n' ) ] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:281) cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})] body: (command.DoGroup children: [ (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' ') ($ Id.VSub_DollarName '$verb') (' COLUMNS (big change)') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:306) (Token id: Id.Lit_Chars val: '\t\tCOLUMNS=200 git $cmd $args >output &&\n' span_id: 307 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:308) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect" actual\n' span_id: 309 ) (Token id:Id.Lit_Chars val:'\t' span_id:310) ) } ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$cmd'))} arms: [ (case_arm pat_list: [{(diff)} {(show)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:328) ) ] spids: [323 326 329 -1] ) ] ) (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' --graph ') ($ Id.VSub_DollarName '$verb') (' COLUMNS (big change)') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:345) (Token id: Id.Lit_Chars val: '\t\tCOLUMNS=200 git $cmd $args --graph >output &&\n' span_id: 346 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:347) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect-graph" actual\n' span_id: 348 ) (Token id:Id.Lit_Chars val:'\t' span_id:349) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:354) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:355)) (OF) } here_end_span_id: 362 stdin_parts: [ ('ignores expect80 format-patch -1 --stdout\n') ('respects expect200 diff HEAD^ HEAD --stat\n') ('respects expect200 show --stat\n') ('respects expect200 log -1 --stat\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:366) fd: -1 arg_word: {(expect40)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:369) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:371))} here_end_span_id: 375 stdin_parts: [(' abcd | 1000 ++++++++++++++++++++++++++\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:378) fd: -1 arg_word: {(expect40-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:381) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:383))} here_end_span_id: 387 stdin_parts: [('| abcd | 1000 ++++++++++++++++++++++++\n')] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:388) cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})] body: (command.DoGroup children: [ (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' ') ($ Id.VSub_DollarName '$verb') (' not enough COLUMNS (big change)') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:413) (Token id: Id.Lit_Chars val: '\t\tCOLUMNS=40 git $cmd $args >output &&\n' span_id: 414 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:415) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect" actual\n' span_id: 416 ) (Token id:Id.Lit_Chars val:'\t' span_id:417) ) } ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$cmd'))} arms: [ (case_arm pat_list: [{(diff)} {(show)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:435) ) ] spids: [430 433 436 -1] ) ] ) (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' --graph ') ($ Id.VSub_DollarName '$verb') (' not enough COLUMNS (big change)') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:452) (Token id: Id.Lit_Chars val: '\t\tCOLUMNS=40 git $cmd $args --graph >output &&\n' span_id: 453 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:454) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect-graph" actual\n' span_id: 455 ) (Token id:Id.Lit_Chars val:'\t' span_id:456) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:461) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:462)) (OF) } here_end_span_id: 469 stdin_parts: [ ('ignores expect80 format-patch -1 --stdout\n') ('respects expect40 diff HEAD^ HEAD --stat\n') ('respects expect40 show --stat\n') ('respects expect40 log -1 --stat\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:473) fd: -1 arg_word: {(expect40)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:476) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:478))} here_end_span_id: 482 stdin_parts: [(' abcd | 1000 ++++++++++++++++++++++++++\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:485) fd: -1 arg_word: {(expect40-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:488) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:490))} here_end_span_id: 494 stdin_parts: [('| abcd | 1000 ++++++++++++++++++++++++++\n')] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:495) cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})] body: (command.DoGroup children: [ (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' ') ($ Id.VSub_DollarName '$verb') (' statGraphWidth config') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:520) (Token id: Id.Lit_Chars val: '\t\tgit -c diff.statGraphWidth=26 $cmd $args >output &&\n' span_id: 521 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:522) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect" actual\n' span_id: 523 ) (Token id:Id.Lit_Chars val:'\t' span_id:524) ) } ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$cmd'))} arms: [ (case_arm pat_list: [{(diff)} {(show)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:542) ) ] spids: [537 540 543 -1] ) ] ) (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' --graph ') ($ Id.VSub_DollarName '$verb') (' statGraphWidth config') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:559) (Token id: Id.Lit_Chars val: '\t\tgit -c diff.statGraphWidth=26 $cmd $args --graph >output &&\n' span_id: 560 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:561) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect-graph" actual\n' span_id: 562 ) (Token id:Id.Lit_Chars val:'\t' span_id:563) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:568) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:569)) (OF) } here_end_span_id: 576 stdin_parts: [ ('ignores expect80 format-patch -1 --stdout\n') ('respects expect40 diff HEAD^ HEAD --stat\n') ('respects expect40 show --stat\n') ('respects expect40 log -1 --stat\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:581) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:584) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:586))} here_end_span_id: 590 stdin_parts: [(' abcd | 1000 ++++++++++++++++++++++++++\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:593) fd: -1 arg_word: {(expect-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:596) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:598))} here_end_span_id: 602 stdin_parts: [('| abcd | 1000 ++++++++++++++++++++++++++\n')] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:603) cond: [(C {(read)} {(cmd)} {(args)})] body: (command.DoGroup children: [ (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat=width with big change'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:622) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat=40 >output &&\n' span_id: 623 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:624) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 625 ) (Token id:Id.Lit_Chars val:'\t' span_id:626) ) } ) (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat-width=width with big change'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:639) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat-width=40 >output &&\n' span_id: 640 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:641) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 642 ) (Token id:Id.Lit_Chars val:'\t' span_id:643) ) } ) (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat-graph-width with big change'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:656) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat-graph-width=26 >output &&\n' span_id: 657 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:658) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 659 ) (Token id:Id.Lit_Chars val:'\t' span_id:660) ) } ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$cmd'))} arms: [ (case_arm pat_list: [{(diff)} {(show)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:678) ) ] spids: [673 676 679 -1] ) ] ) (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat-width=width --graph with big change'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:693) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat-width=40 --graph >output &&\n' span_id: 694 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:695) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect-graph actual\n' span_id: 696 ) (Token id:Id.Lit_Chars val:'\t' span_id:697) ) } ) (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat-graph-width --graph with big change'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:710) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat-graph-width=26 --graph >output &&\n' span_id: 711 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:712) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect-graph actual\n' span_id: 713 ) (Token id:Id.Lit_Chars val:'\t' span_id:714) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:719) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:720)) (OF) } here_end_span_id: 727 stdin_parts: [ ('format-patch -1 --stdout\n') ('diff HEAD^ HEAD --stat\n') ('show --stat\n') ('log -1 --stat\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'preparation for long filename tests' span_id:732))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:736) (Token id: Id.Lit_Chars val: '\tcp abcd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&\n' span_id: 737 ) (Token id: Id.Lit_Chars val: '\tgit add aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&\n' span_id: 738 ) (Token id:Id.Lit_Chars val:'\tgit commit -m message\n' span_id:739) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:745) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:748) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:750))} here_end_span_id: 754 stdin_parts: [(' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:757) fd: -1 arg_word: {(expect-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:760) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:762))} here_end_span_id: 766 stdin_parts: [('| ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++\n')] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:767) cond: [(C {(read)} {(cmd)} {(args)})] body: (command.DoGroup children: [ (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$cmd') (' --stat=width with big change is more balanced'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:786) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat-width=60 >output &&\n' span_id: 787 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:788) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 789 ) (Token id:Id.Lit_Chars val:'\t' span_id:790) ) } ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$cmd'))} arms: [ (case_arm pat_list: [{(diff)} {(show)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:808) ) ] spids: [803 806 809 -1] ) ] ) (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' --stat=width --graph with big change is balanced') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:823) (Token id: Id.Lit_Chars val: '\t\tgit $cmd $args --stat-width=60 --graph >output &&\n' span_id: 824 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:825) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect-graph actual\n' span_id: 826 ) (Token id:Id.Lit_Chars val:'\t' span_id:827) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:832) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:833)) (OF) } here_end_span_id: 840 stdin_parts: [ ('format-patch -1 --stdout\n') ('diff HEAD^ HEAD --stat\n') ('show --stat\n') ('log -1 --stat\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:844) fd: -1 arg_word: {(expect80)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:847) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:849))} here_end_span_id: 853 stdin_parts: [ (' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:856) fd: -1 arg_word: {(expect80-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:859) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:861))} here_end_span_id: 865 stdin_parts: [ ('| ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:868) fd: -1 arg_word: {(expect200)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:871) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:873))} here_end_span_id: 877 stdin_parts: [ ( ' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n' ) ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:880) fd: -1 arg_word: {(expect200-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:883) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:885))} here_end_span_id: 889 stdin_parts: [ ( '| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n' ) ] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:890) cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})] body: (command.DoGroup children: [ (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' ') ($ Id.VSub_DollarName '$verb') (' COLUMNS (long filename)') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:915) (Token id: Id.Lit_Chars val: '\t\tCOLUMNS=200 git $cmd $args >output &&\n' span_id: 916 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:917) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect" actual\n' span_id: 918 ) (Token id:Id.Lit_Chars val:'\t' span_id:919) ) } ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$cmd'))} arms: [ (case_arm pat_list: [{(diff)} {(show)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:937) ) ] spids: [932 935 938 -1] ) ] ) (C {(test_expect_success)} { (DQ ($ Id.VSub_DollarName '$cmd') (' --graph ') ($ Id.VSub_DollarName '$verb') (' COLUMNS (long filename)') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:954) (Token id: Id.Lit_Chars val: '\t\tCOLUMNS=200 git $cmd $args --graph >output &&\n' span_id: 955 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:956) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect-graph" actual\n' span_id: 957 ) (Token id:Id.Lit_Chars val:'\t' span_id:958) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:963) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:964)) (OF) } here_end_span_id: 971 stdin_parts: [ ('ignores expect80 format-patch -1 --stdout\n') ('respects expect200 diff HEAD^ HEAD --stat\n') ('respects expect200 show --stat\n') ('respects expect200 log -1 --stat\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:975) fd: -1 arg_word: {(expect1)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:978) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:980))} here_end_span_id: 984 stdin_parts: [(' ...aaaaaaa | 1000 ++++++\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:987) fd: -1 arg_word: {(expect1-graph)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:990) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:992))} here_end_span_id: 996 stdin_parts: [('| ...aaaaaaa | 1000 ++++++\n')] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:997) cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})] body: (command.DoGroup children: [ (C {(test_expect_success)} {(COLUMNS_CAN_BE_1)} { (DQ ($ Id.VSub_DollarName '$cmd') (' ') ($ Id.VSub_DollarName '$verb') (' prefix greater than COLUMNS (big change)') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1026) (Token id: Id.Lit_Chars val: '\t\tCOLUMNS=1 git $cmd $args >output &&\n' span_id: 1027 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:1028) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect" actual\n' span_id: 1029 ) (Token id:Id.Lit_Chars val:'\t' span_id:1030) ) } ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$cmd'))} arms: [ (case_arm pat_list: [{(diff)} {(show)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:1048) ) ] spids: [1043 1046 1049 -1] ) ] ) (C {(test_expect_success)} {(COLUMNS_CAN_BE_1)} { (DQ ($ Id.VSub_DollarName '$cmd') (' --graph ') ($ Id.VSub_DollarName '$verb') (' prefix greater than COLUMNS (big change)') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1069) (Token id: Id.Lit_Chars val: '\t\tCOLUMNS=1 git $cmd $args --graph >output &&\n' span_id: 1070 ) (Token id:Id.Lit_Chars val:'\t\tgrep " | " output >actual &&\n' span_id:1071) (Token id: Id.Lit_Chars val: '\t\ttest_cmp "$expect-graph" actual\n' span_id: 1072 ) (Token id:Id.Lit_Chars val:'\t' span_id:1073) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1078) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:1079)) (OF) } here_end_span_id: 1086 stdin_parts: [ ('ignores expect80 format-patch -1 --stdout\n') ('respects expect1 diff HEAD^ HEAD --stat\n') ('respects expect1 show --stat\n') ('respects expect1 log -1 --stat\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1090) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1093) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:1095))} here_end_span_id: 1099 stdin_parts: [ ( ' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n' ) ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge --stat respects COLUMNS (big change)' span_id:1103))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1107) (Token id:Id.Lit_Chars val:'\tgit checkout -b branch HEAD^^ &&\n' span_id:1108) (Token id: Id.Lit_Chars val: '\tCOLUMNS=100 git merge --stat --no-ff master^ >output &&\n' span_id: 1109 ) (Token id:Id.Lit_Chars val:'\tgrep " | " output >actual &&\n' span_id:1110) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:1111) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1117) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1120) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:1122))} here_end_span_id: 1126 stdin_parts: [ ( ' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++\n' ) ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge --stat respects COLUMNS (long filename)' span_id:1130))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1134) (Token id: Id.Lit_Chars val: '\tCOLUMNS=100 git merge --stat --no-ff master >output &&\n' span_id: 1135 ) (Token id:Id.Lit_Chars val:'\tgrep " | " output >actual &&\n' span_id:1136) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:1137) ) } ) (C {(test_done)}) ] )