--- embedaddon/rsync/testsuite/dir-sgid.test 2012/02/17 15:09:30 1.1.1.1 +++ embedaddon/rsync/testsuite/dir-sgid.test 2021/03/17 00:32:36 1.1.1.3 @@ -5,7 +5,7 @@ # Test that rsync obeys directory setgid. -- Matt McCutchen -. $srcdir/testsuite/rsync.fns +. $suitedir/rsync.fns umask 077 @@ -23,19 +23,26 @@ testit() { check_perms "$todir/to/program" $4 "Target $1" } +mkdir "$scratchdir/dir" +# Cygwin has a persistent default dir ACL that ruins this test. +case `getfacl "$scratchdir/dir" 2>/dev/null || true` in +*default:user::*) test_skipped "The default ACL mode interferes with this test" ;; +esac + echo "File!" >"$scratchdir/file" echo "#!/bin/sh" >"$scratchdir/program" -mkdir "$scratchdir/dir" -chmod 2764 "$scratchdir/dir" || test_skipped "Can't chmod" + +chmod u=rwx,g=rw,g+s,o=r "$scratchdir/dir" || test_skipped "Can't chmod" chmod 664 "$scratchdir/file" chmod 775 "$scratchdir/program" + [ -g "$scratchdir/dir" ] || test_skipped "The directory setgid bit vanished!" mkdir "$scratchdir/dir/blah" [ -g "$scratchdir/dir/blah" ] || test_skipped "Your filesystem doesn't use directory setgid; maybe it's BSD." # Test some target directories testit setgid-off 700 rw------- rwx------ rwx------ -testit setgid-on 2700 rw------- rwx------ rwx--S--- +testit setgid-on u=rwx,g=rw,g+s,o-rwx rw------- rwx------ rwx--S--- # Hooray exit 0