t0060: add test for prefix_path on symlinks via absolute paths

When symlinks in the working tree are manipulated using the absolute path, git dereferences them, and tries to manipulate the link target instead. This applies to most high-level commands but prefix_path is the common denominator for all of them. Add a known-breakage tests using the prefix_path function, which currently uses real_path, causing the dereference. Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com> Reviewed-by: Duy Nguyen <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Martin Erik Werner committed Feb 4, 2014 at 15:25 UTC 74af95d6aac03e1a1227c78d0d0ea8bbc2fa2b4d
1 file changed +5
t/t0060-path-utils.sh
+5
@@ -190,6 +190,11 @@ test_expect_success SYMLINKS 'real path works on symlinks' '
190 test "$sym" = "$(test-path-utils real_path "$dir2/syml")"
191 '
192
193 +test_expect_failure SYMLINKS 'prefix_path works with absolute paths to work tree symlinks' '
194 + ln -s target symlink &&
195 + test "$(test-path-utils prefix_path prefix "$(pwd)/symlink")" = "symlink"
196 +'
197 +
198 relative_path /foo/a/b/c/ /foo/a/b/ c/
199 relative_path /foo/a/b/c/ /foo/a/b c/
200 relative_path /foo/a//b//c/ ///foo/a/b// c/ POSIX