#! /bin/sh # This program is distributable under the terms of the GNU GPL see # COPYING). # Test the --executability or -E option. -- Matt McCutchen . $srcdir/testsuite/rsync.fns set -x P600='^-rw-------' P604='^-rw----r--' P700='^-rwx------' P705='^-rwx---r-x' check_perms() { $TOOLDIR/tls "$1" | grep "$2" >/dev/null } # Put some files in the From directory mkdir "$fromdir" cat <"$fromdir/1" #!/bin/sh echo 'Program One!' EOF cat <"$fromdir/2" #!/bin/sh echo 'Program Two!' EOF chmod 700 "$fromdir/1" || test_skipped "Can't chmod" chmod 600 "$fromdir/2" $RSYNC -rvv "$fromdir/" "$todir/" check_perms "$todir/1" $P700 || test_fail "After initial transfer: to/1 should have 700 permissions" check_perms "$todir/2" $P600 || test_fail "After initial transfer: to/2 should have 600 permissions" # Mix up the permissions a bit chmod 600 "$fromdir/1" chmod 601 "$fromdir/2" chmod 604 "$todir/2" $RSYNC -rvv "$fromdir/" "$todir/" # No -E, so nothing should have changed check_perms "$todir/1" $P700 || test_fail "After update without -E: to/1 should still have 700 permissions" check_perms "$todir/2" $P604 || test_fail "After update without -E: to/2 should still have 604 permissions" $RSYNC -rvvE "$fromdir/" "$todir/" # Now things should have happened! check_perms "$todir/1" $P600 || test_fail "After update with -E: to/1 should now have 600 permissions" check_perms "$todir/2" $P705 || test_fail "After update with -E: to/2 should now have 705 permissions" # Hooray exit 0