(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'git-status ignored files'>)} spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 28 stdin_parts: [<'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'?? untracked/\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status untracked directory with --ignored'>)} { (SQ <'\n'> <'\techo "ignored" >.gitignore &&\n'> <'\tmkdir untracked &&\n'> <'\t: >untracked/ignored &&\n'> <'\t: >untracked/uncommitted &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (C {<test_expect_success>} {(SQ <'same with gitignore starting with BOM'>)} { (SQ <'\n'> <'\tprintf "\\357\\273\\277ignored\\n" >.gitignore &&\n'> <'\tmkdir -p untracked &&\n'> <'\t: >untracked/ignored &&\n'> <'\t: >untracked/uncommitted &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 78 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'?? untracked/uncommitted\n'> <'!! untracked/ignored\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status untracked directory with --ignored -u'>)} { (SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 103 stdin_parts: [<'?? untracked/uncommitted\n'> <'!! untracked/ignored\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status prefixed untracked directory with --ignored'>)} { (SQ <'\n'> <'\tgit status --porcelain --ignored untracked/ >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 129 stdin_parts: [<'?? untracked/uncommitted\n'> <'!! untracked/ignored\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status prefixed untracked sub-directory with --ignored -u'>)} { (SQ <'\n'> <'\tgit status --porcelain --ignored -u untracked/ >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 157 stdin_parts: [<'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! ignored/\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status ignored directory with --ignore'>)} { (SQ <'\n'> <'\trm -rf untracked &&\n'> <'\tmkdir ignored &&\n'> <'\t: >ignored/uncommitted &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 188 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! ignored/uncommitted\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status ignored directory with --ignore -u'>)} { (SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 215 stdin_parts: [<'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status empty untracked directory with --ignore'>)} { (SQ <'\n'> <'\trm -rf ignored &&\n'> <'\tmkdir untracked-ignored &&\n'> <'\tmkdir untracked-ignored/test &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 245 stdin_parts: [<'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status empty untracked directory with --ignore -u'>)} { (SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 273 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! untracked-ignored/\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status untracked directory with ignored files with --ignore'>)} { (SQ <'\n'> <'\t: >untracked-ignored/ignored &&\n'> <'\t: >untracked-ignored/test/ignored &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 304 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! untracked-ignored/ignored\n'> <'!! untracked-ignored/test/ignored\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status untracked directory with ignored files with --ignore -u'>)} { (SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 331 stdin_parts: [<'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status ignored tracked directory with --ignore'>)} { (SQ <'\n'> <'\trm -rf untracked-ignored &&\n'> <'\tmkdir tracked &&\n'> <'\t: >tracked/committed &&\n'> <'\tgit add tracked/committed &&\n'> <'\tgit commit -m. &&\n'> <'\techo "tracked" >.gitignore &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 364 stdin_parts: [<'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status ignored tracked directory with --ignore -u'>)} { (SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 391 stdin_parts: [<'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status ignored tracked directory and ignored file with --ignore'>)} { (SQ <'\n'> <'\techo "committed" >>.gitignore &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 419 stdin_parts: [<'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'>] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status ignored tracked directory and ignored file with --ignore -u'>)} {(SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 447 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! tracked/uncommitted\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status ignored tracked directory and uncommitted file with --ignore'>)} { (SQ <'\n'> <'\techo "tracked" >.gitignore &&\n'> <'\t: >tracked/uncommitted &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 477 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! tracked/uncommitted\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'status ignored tracked directory and uncommitted file with --ignore -u'>)} {(SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 505 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! tracked/ignored/\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} { (SQ < 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore' > ) } { (SQ <'\n'> <'\trm -rf tracked/uncommitted &&\n'> <'\tmkdir tracked/ignored &&\n'> <'\t: >tracked/ignored/uncommitted &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 536 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! tracked/ignored/uncommitted\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} { (SQ < 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u' > ) } {(SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 564 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! tracked/ignored/uncommitted\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} { (SQ <'status ignored tracked directory with uncommitted file in tracked subdir with --ignore'> ) } { (SQ <'\n'> <'\t: >tracked/ignored/committed &&\n'> <'\tgit add -f tracked/ignored/committed &&\n'> <'\tgit commit -m. &&\n'> <'\tgit status --porcelain --ignored >actual &&\n'> <'\ttest_cmp expected actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 595 stdin_parts: [ <'?? .gitignore\n'> <'?? actual\n'> <'?? expected\n'> <'!! tracked/ignored/uncommitted\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} { (SQ < 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u' > ) } {(SQ <'\n'> <'\tgit status --porcelain --ignored -u >actual &&\n'> <'\ttest_cmp expected actual\n'>)} ) (C {<test_done>}) ] )