git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 6/8] t0060: verify that real_path() works correctly with absolute paths

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Sep 6, 2012, 22:41 UTC
Message-ID
<1346971264-23744-7-git-send-email-mhagger@alum.mit.edu>
In-Reply-To
<1346971264-23744-1-git-send-email-mhagger@alum.mit.edu>

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>
---
 t/t0060-path-utils.sh | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/t/t0060-path-utils.sh b/t/t0060-path-utils.sh
index fab5ea2..3121691 100755
--- a/t/t0060-path-utils.sh
+++ b/t/t0060-path-utils.sh
@@ -148,7 +148,17 @@ test_expect_success 'real path rejects the empty string' '
 	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 &&
 	ln -s ../.git first/.git &&
 	mkdir second &&
-- 
1.7.11.3
Previous: Michael HaggertyNext: Michael Haggerty
Message 10 of 14 in “Fix some bugs in abspath.c”
  1. 0/8 Fix some bugs in abspath.cMichael Haggerty, Sep 6, 2012
  2. 1/8 t0060: move tests of real_path() from t0000 to hereMichael Haggerty, Sep 6, 2012
  3. 2/8 t0060: verify that absolute_path() fails if passed the empty stringMichael Haggerty, Sep 6, 2012
  4. 3/8 absolute_path(): reject the empty stringMichael Haggerty, Sep 6, 2012
  5. Junio C HamanoSep 6, 2012
  6. Michael HaggertySep 9, 2012
  7. Junio C HamanoSep 9, 2012
  8. 4/8 t0060: verify that real_path() fails if passed the empty stringMichael Haggerty, Sep 6, 2012
  9. 5/8 real_path(): reject the empty stringMichael Haggerty, Sep 6, 2012
  10. 6/8 t0060: verify that real_path() works correctly with absolute pathsMichael Haggerty, Sep 6, 2012
  11. 7/8 real_path(): properly handle nonexistent top-level pathsMichael Haggerty, Sep 6, 2012
  12. 8/8 t0060: verify that real_path() removes extra slashesMichael Haggerty, Sep 6, 2012
  13. 9/8 t0060: split absolute path test in two to exercise some of it on WindowsJohannes Sixt, Sep 9, 2012
  14. Michael HaggertySep 10, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.