On 2015-01-21 23.33, Junio C Hamano wrote:
 > Are you reporting differences between the state before these patches
> and after, or just the fact that with these patches the named tests
> break (which may or may not be broken before the patches)?
> 
The intention was to report what is now breaking.
One example is this one:
---------------------
git.git/master:
ok 15 # skip Test that "git rm -f" fails if its rm fails (missing SANITY)

git.git/pu:
not ok 15 - Test that "git rm -f" fails if its rm fails
#    
#        chmod a-w . &&
#        test_must_fail git rm -f baz &&
#        chmod 775 .
#     

The next step could be to dig further:

If I run that sequence manually:
chmod 755 .
touch x
chmod a-w .
rm x
touch y

x is gone, (but shoudn't according to POSIX)
y is not created, "access denied"

--------------
I can see that there are 3 groups of OS/FS combinations:
Group 1:
  File access bits are not maintained, and not obeyed.
  Typical: VFAT, Git for Windows, (and some network protocols like SAMBA,
                   depending on the OS/FS involved and/or the mount options)
  Typically core.filemode is false after "git init"

Group 2:
  File access bits are maintained and obeyed:
  POSIX/Unix/Linux/Mac OS and CYGWIN
  Typically core.filemode is true after "git init"

Group 3 :
  File access bits are maintained, but not (fully) obeyed
  running as root under Linux/Unix...
  Or Windows, when a file is allowed to be deleted from a directory without 
write permissions.

-----------------
In short, the following seems to be an improvement:
diff --git a/t/test-lib.sh b/t/test-lib.sh
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -1039,7 +1039,17 @@ test_lazy_prereq NOT_ROOT '
 # When the tests are run as root, permission tests will report that
 # things are writable when they shouldn't be.
 test_lazy_prereq SANITY '
-       test_have_prereq POSIXPERM,NOT_ROOT
+       mkdir ds &&
+       touch ds/x &&
+       chmod -w ds &&
+       if rm ds/x
+       then
+               chmod +w ds
+               false
+       else
+               chmod +w ds
+               true
+       fi
 '
--
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

Reply via email to