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

2012-09-08 Thread Michael Haggerty
On 09/07/2012 01:08 AM, Junio C Hamano wrote:
 mhag...@alum.mit.edu writes:
 
 From: Michael Haggerty mhag...@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 mhag...@alum.mit.edu
 ---
  t/t-basic.sh | 12 +++-
  1 file changed, 11 insertions(+), 1 deletion(-)

 diff --git a/t/t-basic.sh b/t/t-basic.sh
 index 1a51634..ad002ee 100755
 --- a/t/t-basic.sh
 +++ b/t/t-basic.sh
 @@ -458,7 +458,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 'real path works on absolute paths' '
 +nopath=hopefully-absent-path 
 +test / = $(test-path-utils real_path /) 
 +test /$nopath = $(test-path-utils real_path /$nopath) 
 
 You could perhaps do
 
   sfx=0 
 while test -e /$nopath$sfx
 do
   sfx=$(( $sfx + 1 ))
   done  nopath=$nopath$sfx 
   test /$nopath = $(test-path-utils real_path /$nopath) 
 
 if you really cared.

The possibility is obvious.  Are you advocating it?

I considered that approach, but came to the opinion that it would be
overkill that would only complicate the code for no real advantage,
given that (1) I picked a name that is pretty implausible for an
existing file, (2) the test suite only reads the file, never writes it
(so there is no risk that a copy from a previous run gets left behind),
(3) it's only test suite code, and any failures would have minor
consequences.

Please let me know if you assess the situation differently.

Michael

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2012-09-08 Thread Junio C Hamano
Michael Haggerty mhag...@alum.mit.edu writes:

 The possibility is obvious.  Are you advocating it?

 I considered that approach, but came to the opinion that it would be
 overkill that would only complicate the code for no real advantage,
 given that (1) I picked a name that is pretty implausible for an
 existing file, (2) the test suite only reads the file, never writes it
 (so there is no risk that a copy from a previous run gets left behind),
 (3) it's only test suite code, and any failures would have minor
 consequences.

(4) if it only runs once at the very beginning of the test and sets
a variable that is named prominently clear what it means and lives
throughout the test, then we do not even have to say hopefully and
appear lazy and loose to the readers of the test who wonders what
happens when the path does exist; doing so will help reducing the
noise on the mailing list in the future.


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2012-09-08 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 (4) if it only runs once at the very beginning of the test and sets
 a variable that is named prominently clear what it means and lives
 throughout the test, then we do not even have to say hopefully and
 appear lazy and loose to the readers of the test who wonders what
 happens when the path does exist; doing so will help reducing the
 noise on the mailing list in the future.

Having said that, I really do not deeply care either way.  If you
are rerollilng the series for other changes, I wouldn't shed tears
even if I do not see any change to this part.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2012-09-06 Thread Junio C Hamano
mhag...@alum.mit.edu writes:

 From: Michael Haggerty mhag...@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 mhag...@alum.mit.edu
 ---
  t/t-basic.sh | 12 +++-
  1 file changed, 11 insertions(+), 1 deletion(-)

 diff --git a/t/t-basic.sh b/t/t-basic.sh
 index 1a51634..ad002ee 100755
 --- a/t/t-basic.sh
 +++ b/t/t-basic.sh
 @@ -458,7 +458,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 'real path works on absolute paths' '
 + nopath=hopefully-absent-path 
 + test / = $(test-path-utils real_path /) 
 + test /$nopath = $(test-path-utils real_path /$nopath) 

You could perhaps do

sfx=0 
while test -e /$nopath$sfx
do
sfx=$(( $sfx + 1 ))
done  nopath=$nopath$sfx 
test /$nopath = $(test-path-utils real_path /$nopath) 

if you really cared.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2012-09-05 Thread Johannes Sixt
Am 9/4/2012 10:14, schrieb mhag...@alum.mit.edu:
 From: Michael Haggerty mhag...@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 mhag...@alum.mit.edu
 ---
  t/t-basic.sh | 12 +++-
  1 file changed, 11 insertions(+), 1 deletion(-)
 
 diff --git a/t/t-basic.sh b/t/t-basic.sh
 index 1a51634..ad002ee 100755
 --- a/t/t-basic.sh
 +++ b/t/t-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.

-- Hannes
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2012-09-04 Thread mhagger
From: Michael Haggerty mhag...@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 mhag...@alum.mit.edu
---
 t/t-basic.sh | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/t/t-basic.sh b/t/t-basic.sh
index 1a51634..ad002ee 100755
--- a/t/t-basic.sh
+++ b/t/t-basic.sh
@@ -458,7 +458,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 '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

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html