(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:'git-status ignored files' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:17) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:20) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:21)) (OF)} here_end_span_id: 28 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('?? untracked/\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status untracked directory with --ignored' span_id:33))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) (Token id:Id.Lit_Chars val:'\techo "ignored" >.gitignore &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\tmkdir untracked &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\t: >untracked/ignored &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\t: >untracked/uncommitted &&\n' span_id:41) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored >actual &&\n' span_id: 42 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:43) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'same with gitignore starting with BOM' span_id:50))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:54) (Token id: Id.Lit_Chars val: '\tprintf "\\357\\273\\277ignored\\n" >.gitignore &&\n' span_id: 55 ) (Token id:Id.Lit_Chars val:'\tmkdir -p untracked &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\t: >untracked/ignored &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\t: >untracked/uncommitted &&\n' span_id:58) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored >actual &&\n' span_id: 59 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:60) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:66) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:69) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:70)) (OF)} here_end_span_id: 78 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('?? untracked/uncommitted\n') ('!! untracked/ignored\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status untracked directory with --ignored -u' span_id:83))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:87) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 88 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:89) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:94) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:97) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:98)) (OF)} here_end_span_id: 103 stdin_parts: [('?? untracked/uncommitted\n') ('!! untracked/ignored\n')] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status prefixed untracked directory with --ignored' span_id: 108 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:112) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored untracked/ >actual &&\n' span_id: 113 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:114) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:120) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:123) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:124)) (OF) } here_end_span_id: 129 stdin_parts: [('?? untracked/uncommitted\n') ('!! untracked/ignored\n')] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status prefixed untracked sub-directory with --ignored -u' span_id: 134 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:138) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u untracked/ >actual &&\n' span_id: 139 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:140) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:146) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:149) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:150)) (OF) } here_end_span_id: 157 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! ignored/\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status ignored directory with --ignore' span_id:162))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:166) (Token id:Id.Lit_Chars val:'\trm -rf untracked &&\n' span_id:167) (Token id:Id.Lit_Chars val:'\tmkdir ignored &&\n' span_id:168) (Token id:Id.Lit_Chars val:'\t: >ignored/uncommitted &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\tgit status --porcelain --ignored >actual &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:171) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:177) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:180) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:181)) (OF) } here_end_span_id: 188 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! ignored/uncommitted\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status ignored directory with --ignore -u' span_id:193))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:197) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 198 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:199) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:205) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:208) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:209)) (OF) } here_end_span_id: 215 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status empty untracked directory with --ignore' span_id:220))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:224) (Token id:Id.Lit_Chars val:'\trm -rf ignored &&\n' span_id:225) (Token id:Id.Lit_Chars val:'\tmkdir untracked-ignored &&\n' span_id:226) (Token id:Id.Lit_Chars val:'\tmkdir untracked-ignored/test &&\n' span_id:227) (Token id:Id.Lit_Chars val:'\tgit status --porcelain --ignored >actual &&\n' span_id:228) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\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: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:238) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:239)) (OF) } here_end_span_id: 245 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n')] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status empty untracked directory with --ignore -u' span_id: 250 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:254) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 255 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:256) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:262) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:265) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:266)) (OF) } here_end_span_id: 273 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! untracked-ignored/\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status untracked directory with ignored files with --ignore' span_id: 278 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:282) (Token id:Id.Lit_Chars val:'\t: >untracked-ignored/ignored &&\n' span_id:283) (Token id:Id.Lit_Chars val:'\t: >untracked-ignored/test/ignored &&\n' span_id:284) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored >actual &&\n' span_id: 285 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:286) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:292) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:295) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:296)) (OF) } here_end_span_id: 304 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! untracked-ignored/ignored\n') ('!! untracked-ignored/test/ignored\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status untracked directory with ignored files with --ignore -u' span_id: 309 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:313) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 314 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:315) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:321) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:324) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:325)) (OF) } here_end_span_id: 331 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status ignored tracked directory with --ignore' span_id:336))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:340) (Token id:Id.Lit_Chars val:'\trm -rf untracked-ignored &&\n' span_id:341) (Token id:Id.Lit_Chars val:'\tmkdir tracked &&\n' span_id:342) (Token id:Id.Lit_Chars val:'\t: >tracked/committed &&\n' span_id:343) (Token id:Id.Lit_Chars val:'\tgit add tracked/committed &&\n' span_id:344) (Token id:Id.Lit_Chars val:'\tgit commit -m. &&\n' span_id:345) (Token id:Id.Lit_Chars val:'\techo "tracked" >.gitignore &&\n' span_id:346) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored >actual &&\n' span_id: 347 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:348) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:354) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:357) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:358)) (OF) } here_end_span_id: 364 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n')] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory with --ignore -u' span_id: 369 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:373) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 374 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:375) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:381) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:384) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:385)) (OF) } here_end_span_id: 391 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n')] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory and ignored file with --ignore' span_id: 396 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:400) (Token id:Id.Lit_Chars val:'\techo "committed" >>.gitignore &&\n' span_id:401) (Token id:Id.Lit_Chars val:'\tgit status --porcelain --ignored >actual &&\n' span_id:402) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:403) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:409) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:412) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:413)) (OF) } here_end_span_id: 419 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n')] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory and ignored file with --ignore -u' span_id: 424 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:428) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 429 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:430) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:436) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:439) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:440)) (OF) } here_end_span_id: 447 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! tracked/uncommitted\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory and uncommitted file with --ignore' span_id: 452 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:456) (Token id:Id.Lit_Chars val:'\techo "tracked" >.gitignore &&\n' span_id:457) (Token id:Id.Lit_Chars val:'\t: >tracked/uncommitted &&\n' span_id:458) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored >actual &&\n' span_id: 459 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:460) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:466) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:469) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:470)) (OF) } here_end_span_id: 477 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! tracked/uncommitted\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory and uncommitted file with --ignore -u' span_id: 482 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:486) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 487 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:488) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:494) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:497) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:498)) (OF) } here_end_span_id: 505 stdin_parts: [('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! tracked/ignored/\n')] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore' span_id: 510 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:514) (Token id:Id.Lit_Chars val:'\trm -rf tracked/uncommitted &&\n' span_id:515) (Token id:Id.Lit_Chars val:'\tmkdir tracked/ignored &&\n' span_id:516) (Token id:Id.Lit_Chars val:'\t: >tracked/ignored/uncommitted &&\n' span_id:517) (Token id:Id.Lit_Chars val:'\tgit status --porcelain --ignored >actual &&\n' span_id:518) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:519) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:525) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:528) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:529)) (OF) } here_end_span_id: 536 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! tracked/ignored/uncommitted\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u' span_id: 541 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:545) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 546 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:547) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:553) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:556) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:557)) (OF) } here_end_span_id: 564 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! tracked/ignored/uncommitted\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore' span_id: 569 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:573) (Token id:Id.Lit_Chars val:'\t: >tracked/ignored/committed &&\n' span_id:574) (Token id:Id.Lit_Chars val:'\tgit add -f tracked/ignored/committed &&\n' span_id:575) (Token id:Id.Lit_Chars val:'\tgit commit -m. &&\n' span_id:576) (Token id:Id.Lit_Chars val:'\tgit status --porcelain --ignored >actual &&\n' span_id:577) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:578) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:584) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:587) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:588)) (OF) } here_end_span_id: 595 stdin_parts: [ ('?? .gitignore\n') ('?? actual\n') ('?? expected\n') ('!! tracked/ignored/uncommitted\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u' span_id: 600 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:604) (Token id: Id.Lit_Chars val: '\tgit status --porcelain --ignored -u >actual &&\n' span_id: 605 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:606) ) } ) (C {(test_done)}) ] )