(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description) op: assign_op.Equal rhs: {(SQ <'ls-files --exclude does not affect index files'>)} spids: [4] ) ] redirects: [] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {(SQ <'create repo with file'>)} { (SQ <'\n'> <'\techo content >file &&\n'> <'\tgit add file &&\n'> <'\tgit commit -m file &&\n'> <'\techo modification >file\n'> ) } ) (command.ShFunction name: check_output body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<test_expect_success>} {(DQ <'ls-files output contains file ('> ($ Id.VSub_Number 1) <')'>)} { (DQ <'\n'> <'\techo \''> ($ Id.VSub_Number 2) <'\' >expect &&\n'> <'\tgit ls-files --exclude-standard --'> ($ Id.VSub_Number 1) <' >output &&\n'> <'\ttest_cmp expect output\n'> ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: check_all_output body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<check_output>} {(SQ <cached>)} {(SQ <file>)}) (C {<check_output>} {(SQ <modified>)} {(SQ <file>)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<check_all_output>}) (C {<test_expect_success>} {(SQ <'add file to gitignore'>)} {(SQ <'\n'> <'\techo file >.gitignore\n'>)} ) (C {<check_all_output>}) (C {<test_expect_success>} {(SQ <'ls-files -i lists only tracked-but-ignored files'>)} { (SQ <'\n'> <'\techo content >other-file &&\n'> <'\tgit add other-file &&\n'> <'\techo file >expect &&\n'> <'\tgit ls-files -i --exclude-standard >output &&\n'> <'\ttest_cmp expect output\n'> ) } ) (C {<test_done>}) ] )