(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: { (SQ <'git update-index on filesystem w/o symlinks test.\n'> <'\n'> <'This tests that git update-index keeps the symbolic link property\n'> <'even if a plain file is in the working tree if core.symlinks is false.'> ) } spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <preparation>)} { (SQ <'\n'> <'git config core.symlinks false &&\n'> <'l=$(printf file | git hash-object -t blob -w --stdin) &&\n'> <'echo "120000 $l\tsymlink" | git update-index --index-info'> ) } ) (C {(test_expect_success)} {(SQ <'modify the symbolic link'>)} {(SQ <'\n'> <'printf new-file > symlink &&\n'> <'git update-index symlink'>)} ) (C {(test_expect_success)} {(SQ <'the index entry must still be a symbolic link'>)} { (SQ <'\n'> <'case "$(git ls-files --stage --cached symlink)" in\n'> <'120000" "*symlink) echo pass;;\n'> <'*) echo fail; git ls-files --stage --cached symlink; (exit 1);;\n'> <esac> ) } ) (C {(test_done)}) ] )