X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=t%2Ftest-lib.sh;h=bd4b02e9dbf9560cf1285bb6607be83964ecc40a;hb=913c2c7c7be358144260bc81112e548d3276d694;hp=16c4d7b516649a13e3f07e081e91e1212afc61a5;hpb=5e6154fb145d66af36e10ef4db7e1d1e9502c501;p=thirdparty%2Fgit.git diff --git a/t/test-lib.sh b/t/test-lib.sh index 16c4d7b516..bd4b02e9db 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -1054,20 +1054,28 @@ test_lazy_prereq NOT_ROOT ' test "$uid" != 0 ' -# On a filesystem that lacks SANITY, a file can be deleted even if -# the containing directory doesn't have write permissions, or a file -# can be accessed even if the containing directory doesn't have read -# or execute permissions, causing our tests that validate that Git -# works sensibly in such situations. +# SANITY is about "can you correctly predict what the filesystem would +# do by only looking at the permission bits of the files and +# directories?" A typical example of !SANITY is running the test +# suite as root, where a test may expect "chmod -r file && cat file" +# to fail because file is supposed to be unreadable after a successful +# chmod. In an environment (i.e. combination of what filesystem is +# being used and who is running the tests) that lacks SANITY, you may +# be able to delete or create a file when the containing directory +# doesn't have write permissions, or access a file even if the +# containing directory doesn't have read or execute permissions. + test_lazy_prereq SANITY ' mkdir SANETESTD.1 SANETESTD.2 && chmod +w SANETESTD.1 SANETESTD.2 && >SANETESTD.1/x 2>SANETESTD.2/x && chmod -w SANETESTD.1 && + chmod -r SANETESTD.1/x && chmod -rx SANETESTD.2 || error "bug in test sript: cannot prepare SANETESTD" + ! test -r SANETESTD.1/x && ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x status=$?