summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-02-05 22:54:14 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-02-05 22:54:14 (GMT)
commit913c2c7c7be358144260bc81112e548d3276d694 (patch)
treec1447fca8c50b3986c1d9a950c99e25e4a8b1d83
parent16f5e2683304b986be49a919198d04652a126271 (diff)
parent719c3da2f183cfc751bb801a2c903f2eb015d131 (diff)
downloadgit-913c2c7c7be358144260bc81112e548d3276d694.zip
git-913c2c7c7be358144260bc81112e548d3276d694.tar.gz
git-913c2c7c7be358144260bc81112e548d3276d694.tar.bz2
Merge branch 'jk/sanity' into maint
The description for SANITY prerequisite the test suite uses has been clarified both in the comment and in the implementation. * jk/sanity: test-lib: clarify and tighten SANITY
-rw-r--r--t/test-lib.sh18
1 files changed, 13 insertions, 5 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 16c4d7b..bd4b02e 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=$?