Test the --chmod option.
[rsync/rsync.git] / testsuite / chmod-option.test
1 #! /bin/sh
2
3 # Copyright (C) 2002 by Martin Pool <mbp@samba.org>
4
5 # This program is distributable under the terms of the GNU GPL (see
6 # COPYING).
7
8 # Test that the --chmod option functions correctly.
9
10 . $srcdir/testsuite/rsync.fns
11
12 set -x
13
14 # Build some files
15
16 fromdir="$scratchdir/from"
17 todir="$scratchdir/to"
18 checkdir="$scratchdir/check"
19
20 mkdir "$fromdir"
21 name1="$fromdir/name1"
22 name2="$fromdir/name2"
23 dir1="$fromdir/dir1"
24 dir2="$fromdir/dir2"
25 echo "This is the file" > "$name1"
26 echo "This is the other file" > "$name2"
27 mkdir "$dir1" "$dir2"
28
29 chmod 4700 "$name1" || test_skipped "Can't chmod"
30 chmod 700 "$dir1"
31 chmod 770 "$dir2"
32
33 # Copy the files we've created over to another directory
34 checkit "$RSYNC -avv \"$fromdir/\" \"$checkdir/\"" "$fromdir" "$checkdir"
35
36 # And then manually make the changes which should occur 
37 umask 002
38 chmod ug-s,a+rX "$checkdir"/*
39 chmod +w "$checkdir" "$checkdir"/dir*
40
41 checkit "$RSYNC -avv --chmod ug-s,a+rX,D+w \"$fromdir/\" \"$todir/\"" "$checkdir" "$todir"
42
43 # The script would have aborted on error, so getting here means we've won.
44 exit 0