Skip to content

Commit 7bcf48d

Browse files
mhaggergitster
authored andcommitted
t0060: verify that real_path() works correctly with absolute paths
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 <[email protected]> Signed-off-by: Michael Haggerty <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 3efe5d1 commit 7bcf48d

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

t/t0060-path-utils.sh

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,17 @@ test_expect_success 'real path rejects the empty string' '
148148
test_must_fail test-path-utils real_path ""
149149
'
150150

151-
test_expect_success SYMLINKS 'real path works as expected' '
151+
test_expect_failure POSIX 'real path works on absolute paths' '
152+
nopath="hopefully-absent-path" &&
153+
test "/" = "$(test-path-utils real_path "/")" &&
154+
test "/$nopath" = "$(test-path-utils real_path "/$nopath")" &&
155+
# Find an existing top-level directory for the remaining tests:
156+
d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") &&
157+
test "$d" = "$(test-path-utils real_path "$d")" &&
158+
test "$d/$nopath" = "$(test-path-utils real_path "$d/$nopath")"
159+
'
160+
161+
test_expect_success SYMLINKS 'real path works on symlinks' '
152162
mkdir first &&
153163
ln -s ../.git first/.git &&
154164
mkdir second &&

0 commit comments

Comments
 (0)