X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Ftest-file-has-acl.sh;h=7064c1cdf09682c42b0b72e4bd257ceacb8a85f7;hb=2b08e890726e2c572d2ba64f19bece957d1bfd98;hp=7f1c376b6ca2fe9614f180a46b9a533fed1cff22;hpb=0b4c37d63c2d3fda4bc433f231c549d09ecb2ae2;p=gnulib.git diff --git a/tests/test-file-has-acl.sh b/tests/test-file-has-acl.sh index 7f1c376b6..7064c1cdf 100755 --- a/tests/test-file-has-acl.sh +++ b/tests/test-file-has-acl.sh @@ -3,6 +3,12 @@ # Show all commands when run with environment variable VERBOSE=yes. test -z "$VERBOSE" || set -x +test "$USE_ACL" = 0 && + { + echo "Skipping test: insufficient ACL support" + exit 77 + } + # func_tmpdir # creates a temporary directory. # Sets variable @@ -177,6 +183,9 @@ cd "$builddir" || func_test_has_acl tmpfile0 no + mkdir tmpdir0 + func_test_has_acl tmpdir0 no + if test $acl_flavor != none; then # Use a user and group id different from the current one, to avoid # redundant/ambiguous ACLs. @@ -188,7 +197,7 @@ cd "$builddir" || if test "$agid" = "$mygid"; then agid=2; fi case $acl_flavor in - linux | cygwin | freebsd | solaris) + linux | freebsd | solaris) # Set an ACL for a user. if setfacl -m user:$auid:1 tmpfile0; then @@ -202,11 +211,11 @@ cd "$builddir" || *) setfacl -d user:$auid:1 tmpfile0 ;; esac - # On Linux, the ACL for the mask is implicitly added. + # On Linux and FreeBSD, the ACL for the mask is implicitly added. # On Solaris, it is always there. case $acl_flavor in - linux) func_test_has_acl tmpfile0 yes ;; - *) func_test_has_acl tmpfile0 no ;; + linux | freebsd) func_test_has_acl tmpfile0 yes ;; + *) func_test_has_acl tmpfile0 no ;; esac # Remove the ACL for the mask, if it was implicitly added. @@ -220,6 +229,21 @@ cd "$builddir" || fi ;; + cygwin) + + # Set an ACL for a group. + if setfacl -m group:0:1 tmpfile0; then + + func_test_has_acl tmpfile0 yes + + # Remove the ACL for the group. + setfacl -d group:0 tmpfile0 + + func_test_has_acl tmpfile0 no + + fi + ;; + hpux) # Set an ACL for a user. @@ -307,6 +331,7 @@ cd "$builddir" || fi rm -f tmpfile[0-9] tmp.err + rm -rf tmpdir0 ) || exit 1 rm -rf "$tmp"