X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-set-mode-acl.sh;h=24ce003029c831f042c27aeecb409c95160fb287;hb=d6e564567eb4ab3033d8e08c8467e3d1a3f51c0d;hp=5d3d225196c3f453da51f21da7c9c8c6399698c7;hpb=4156b9e2b3b72c3050f9f9af2851980743b5cb16;p=gnulib.git diff --git a/tests/test-set-mode-acl.sh b/tests/test-set-mode-acl.sh index 5d3d22519..24ce00302 100755 --- a/tests/test-set-mode-acl.sh +++ b/tests/test-set-mode-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 @@ -54,7 +60,7 @@ cd "$builddir" || # Classification of the platform according to the programs available for # manipulating ACLs. # Possible values are: - # linux, cygwin, freebsd, solaris, hpux, osf1, aix, macosx, irix, none. + # linux, cygwin, freebsd, solaris, hpux, hpuxjfs, osf1, aix, macosx, irix, none. # TODO: Support also native Win32 platforms (mingw). acl_flavor=none if (getfacl tmpfile0 >/dev/null) 2>/dev/null; then @@ -82,11 +88,23 @@ cd "$builddir" || if (lsacl / >/dev/null) 2>/dev/null; then # Platforms with the lsacl and chacl programs. # HP-UX, sometimes also IRIX. - acl_flavor=hpux + if (getacl tmpfile0 >/dev/null) 2>/dev/null; then + # HP-UX 11.11 or newer. + acl_flavor=hpuxjfs + else + # HP-UX 11.00. + acl_flavor=hpux + fi else if (getacl tmpfile0 >/dev/null) 2>/dev/null; then - # Tru64. - acl_flavor=osf1 + # Tru64, NonStop Kernel. + if (getacl -m tmpfile0 >/dev/null) 2>/dev/null; then + # Tru64. + acl_flavor=osf1 + else + # NonStop Kernel. + acl_flavor=nsk + fi else if (aclget tmpfile0 >/dev/null) 2>/dev/null; then # AIX. @@ -166,9 +184,17 @@ cd "$builddir" || orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'` chacl -r "${orig}($auid.%,--x)" tmpfile0 ;; + hpuxjfs) + orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'` + chacl -r "${orig}($auid.%,--x)" tmpfile0 \ + || setacl -m user:$auid:1 tmpfile0 + ;; osf1) setacl -u user:$auid:1 tmpfile0 ;; + nsk) + setacl -m user:$auid:1 tmpfile0 + ;; aix) { aclget tmpfile0 | sed -e 's/disabled$/enabled/'; echo " permit --x u:$auid"; } | aclput tmpfile0 ;;