Matt's executability test with a few tweaks (e.g. to avoid using
authorWayne Davison <wayned@samba.org>
Fri, 3 Feb 2006 06:47:26 +0000 (06:47 +0000)
committerWayne Davison <wayned@samba.org>
Fri, 3 Feb 2006 06:47:26 +0000 (06:47 +0000)
"stat").

testsuite/executability.test [new file with mode: 0644]

diff --git a/testsuite/executability.test b/testsuite/executability.test
new file mode 100644 (file)
index 0000000..8ea8fb5
--- /dev/null
@@ -0,0 +1,58 @@
+#! /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 <<EOF >"$fromdir/1"
+#!/bin/sh
+echo 'Program One!'
+EOF
+cat <<EOF >"$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