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

Re: [PATCH 5/7] t0000: verify that real_path() works correctly with absolute paths

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Sep 6, 2012, 21:11 UTC
Message-ID
<50491199.8090306@alum.mit.edu>
In-Reply-To
<50470FFB.2070204@viscovery.net>
On 09/05/2012 10:40 AM, Johannes Sixt wrote:
Show 47 quoted lines
> Am 9/4/2012 10:14, schrieb mhagger@alum.mit.edu:
>> From: Michael Haggerty <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.
>>
>> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
>> ---
>>  t/t0000-basic.sh | 12 +++++++++++-
>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
>> index 1a51634..ad002ee 100755
>> --- a/t/t0000-basic.sh
>> +++ b/t/t0000-basic.sh
>> @@ -458,7 +458,17 @@ test_expect_success 'real path rejects the empty string' '
>>  	test_must_fail test-path-utils real_path ""
>>  '
>>  
> 
> These tests should really be in t0060-path-utils.sh.
> 
>> -test_expect_success SYMLINKS 'real path works as expected' '
>> +test_expect_failure 'real path works on absolute paths' '
>> +	nopath="hopefully-absent-path" &&
>> +	test "/" = "$(test-path-utils real_path "/")" &&
>> +	test "/$nopath" = "$(test-path-utils real_path "/$nopath")" &&
> 
> These tests fail on Windows because test-path-utils operates on a
> DOS-style absolute path even if a POSIX style absolute path is passed as
> argument. The best thing would be to move this to a separate test that is
> protected by a POSIX prerequisite (which is set in t0060).
> 
>> +	# Find an existing top-level directory for the remaining tests:
>> +	d=$(pwd -P | sed -e "s|^\(/[^/]*\)/.*|\1|") &&
> 
> pwd -P actually expands to pwd -W on Windows, and produces a DOS-style
> path. I suggest to insert [^/]* to skip drive letter-colon like so:
> 
> 	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")"
> 
> Then these tests pass.
Thanks for the help.  They will be incorporated in v2.
Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
Previous: Johannes SixtNext: Junio C Hamano
Message 8 of 25 in “Fix some bugs in abspath.c”
  1. 0/7 Fix some bugs in abspath.cmhagger@alum.mit.edu, Sep 4, 2012
  2. 1/7 t0000: verify that absolute_path() fails if passed the empty stringmhagger@alum.mit.edu, Sep 4, 2012
  3. 2/7 absolute_path(): reject the empty stringmhagger@alum.mit.edu, Sep 4, 2012
  4. 3/7 t0000: verify that real_path() fails if passed the empty stringmhagger@alum.mit.edu, Sep 4, 2012
  5. 4/7 real_path(): reject the empty stringmhagger@alum.mit.edu, Sep 4, 2012
  6. 5/7 t0000: verify that real_path() works correctly with absolute pathsmhagger@alum.mit.edu, Sep 4, 2012
  7. Johannes SixtSep 5, 2012
  8. Michael HaggertySep 6, 2012
  9. Junio C HamanoSep 6, 2012
  10. Michael HaggertySep 9, 2012
  11. Junio C HamanoSep 9, 2012
  12. Junio C HamanoSep 9, 2012
  13. 6/7 real_path(): properly handle nonexistent top-level pathsmhagger@alum.mit.edu, Sep 4, 2012
  14. 7/7 t0000: verify that real_path() removes extra slashesmhagger@alum.mit.edu, Sep 4, 2012
  15. Junio C HamanoSep 4, 2012
  16. Nguyen Thai Ngoc DuySep 5, 2012
  17. Junio C HamanoSep 6, 2012
  18. Nguyen Thai Ngoc DuySep 6, 2012
  19. Junio C HamanoSep 6, 2012
  20. Nguyen Thai Ngoc DuySep 7, 2012
  21. Johannes SixtSep 5, 2012
  22. Michael HaggertySep 6, 2012
  23. Junio C HamanoSep 4, 2012
  24. Junio C HamanoSep 4, 2012
  25. Nguyen Thai Ngoc DuySep 5, 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.