Skip to content

Commit

Permalink
t0060: verify that real_path() works correctly with absolute paths
Browse files Browse the repository at this point in the history
There is currently a bug: if passed an absolute top-level path that
doesn't exist (e.g., "/foo") it incorrectly interprets the path as a
relative path (e.g., returns "$(pwd)/foo").  So mark the test as
failing.

These tests are skipped on Windows because test-path-utils operates on
a DOS-style absolute path even if a POSIX style absolute path is
passed as argument.

Adjusted for Windows by: Johannes Sixt <j6t@kdbg.org>

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
mhagger authored and gitster committed Sep 6, 2012
1 parent 3efe5d1 commit 7bcf48d
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion t/t0060-path-utils.sh
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -148,7 +148,17 @@ test_expect_success 'real path rejects the empty string' '
test_must_fail test-path-utils real_path "" test_must_fail test-path-utils real_path ""
' '


test_expect_success SYMLINKS 'real path works as expected' ' test_expect_failure POSIX 'real path works on absolute paths' '
nopath="hopefully-absent-path" &&
test "/" = "$(test-path-utils real_path "/")" &&
test "/$nopath" = "$(test-path-utils real_path "/$nopath")" &&
# Find an existing top-level directory for the remaining tests:
d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") &&
test "$d" = "$(test-path-utils real_path "$d")" &&
test "$d/$nopath" = "$(test-path-utils real_path "$d/$nopath")"
'

test_expect_success SYMLINKS 'real path works on symlinks' '
mkdir first && mkdir first &&
ln -s ../.git first/.git && ln -s ../.git first/.git &&
mkdir second && mkdir second &&
Expand Down

0 comments on commit 7bcf48d

Please sign in to comment.