Merge branch 'jk/sanity'

The tests that wanted to see that file becomes unreadable after
running "chmod a-r file", and the tests that wanted to make sure it
is not run as root, we used "can we write into the / directory?" as
a cheap substitute, but on some platforms that is not a good
heuristics.  The tests and their prerequisites have been updated to
check what they really require.

* jk/sanity:
  test-lib.sh: set prerequisite SANITY by testing what we really need
  tests: correct misuses of POSIXPERM
  t/lib-httpd: switch SANITY check for NOT_ROOT
This commit is contained in:
Junio C Hamano
2015-02-25 15:40:18 -08:00
4 changed files with 42 additions and 9 deletions

View File

@ -1031,9 +1031,33 @@ test_lazy_prereq USR_BIN_TIME '
test -x /usr/bin/time
'
# When the tests are run as root, permission tests will report that
# things are writable when they shouldn't be.
test -w / || test_set_prereq SANITY
test_lazy_prereq NOT_ROOT '
uid=$(id -u) &&
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.
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 -rx SANETESTD.2 ||
error "bug in test sript: cannot prepare SANETESTD"
! rm SANETESTD.1/x && ! test -f SANETESTD.2/x
status=$?
chmod +rwx SANETESTD.1 SANETESTD.2 &&
rm -rf SANETESTD.1 SANETESTD.2 ||
error "bug in test sript: cannot clean SANETESTD"
return $status
'
GIT_UNZIP=${GIT_UNZIP:-unzip}
test_lazy_prereq UNZIP '