(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'git status and symlinks'>)} spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {(SQ <setup>)} { (SQ <'\n'> <'\techo .gitignore >.gitignore &&\n'> <'\techo actual >>.gitignore &&\n'> <'\techo expect >>.gitignore &&\n'> <'\tmkdir dir &&\n'> <'\techo x >dir/file1 &&\n'> <'\techo y >dir/file2 &&\n'> <'\tgit add dir &&\n'> <'\tgit commit -m initial &&\n'> <'\tgit tag initial\n'> ) } ) (C {<test_expect_success>} {<SYMLINKS>} {(SQ <'symlink to a directory'>)} { (SQ <'\n'> <'\ttest_when_finished "rm symlink" &&\n'> <'\tln -s dir symlink &&\n'> <'\techo "?? symlink" >expect &&\n'> <'\tgit status --porcelain >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {<test_expect_success>} {<SYMLINKS>} {(SQ <'symlink replacing a directory'>)} { (SQ <'\n'> <'\ttest_when_finished "rm -rf copy && git reset --hard initial" &&\n'> <'\tmkdir copy &&\n'> <'\tcp dir/file1 copy/file1 &&\n'> <'\techo "changed in copy" >copy/file2 &&\n'> <'\tgit add copy &&\n'> <'\tgit commit -m second &&\n'> <'\trm -rf copy &&\n'> <'\tln -s dir copy &&\n'> <'\techo " D copy/file1" >expect &&\n'> <'\techo " D copy/file2" >>expect &&\n'> <'\techo "?? copy" >>expect &&\n'> <'\tgit status --porcelain >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {<test_done>}) ] )