(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'ls-files --exclude does not affect index files'>)} spids: [4] ) ] ) (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 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'> ) } ) ] ) ) (command.ShFunction name: check_all_output body: (BraceGroup children: [ (C {<check_output>} {(SQ <cached>)} {(SQ <file>)}) (C {<check_output>} {(SQ <modified>)} {(SQ <file>)}) ] ) ) (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>}) ] )