Annotation of embedaddon/rsync/testsuite/chmod-option.test, revision 1.1.1.2

1.1       misho       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: 
1.1.1.2 ! misho      10: . $suitedir/rsync.fns
1.1       misho      11: 
                     12: # Build some files
                     13: 
                     14: fromdir="$scratchdir/from"
                     15: todir="$scratchdir/to"
                     16: checkdir="$scratchdir/check"
                     17: 
                     18: mkdir "$fromdir"
                     19: name1="$fromdir/name1"
                     20: name2="$fromdir/name2"
                     21: dir1="$fromdir/dir1"
                     22: dir2="$fromdir/dir2"
                     23: echo "This is the file" > "$name1"
                     24: echo "This is the other file" > "$name2"
                     25: mkdir "$dir1" "$dir2"
                     26: 
                     27: chmod 4700 "$name1" || test_skipped "Can't chmod"
                     28: chmod 700 "$dir1"
                     29: chmod 770 "$dir2"
                     30: 
                     31: # Copy the files we've created over to another directory
                     32: checkit "$RSYNC -avv '$fromdir/' '$checkdir/'" "$fromdir" "$checkdir"
                     33: 
                     34: # And then manually make the changes which should occur 
                     35: umask 002
                     36: chmod ug-s,a+rX "$checkdir"/*
                     37: chmod +w "$checkdir" "$checkdir"/dir*
                     38: 
                     39: checkit "$RSYNC -avv --chmod ug-s,a+rX,D+w '$fromdir/' '$todir/'" "$checkdir" "$todir"
                     40: 
                     41: rm -r "$fromdir" "$checkdir" "$todir"
                     42: makepath "$todir" "$fromdir/foo"
                     43: touch "$fromdir/bar"
                     44: 
                     45: checkit "$RSYNC -avv '$fromdir/' '$checkdir/'" "$fromdir" "$checkdir"
                     46: chmod o+x "$fromdir"/bar
                     47: 
                     48: checkit "$RSYNC -avv --chmod=Fo-x '$fromdir/' '$todir/'" "$checkdir" "$todir"
                     49: 
                     50: # Tickle a bug in rsync 2.6.8: if you push a new directory with --perms off to
                     51: # a daemon with an incoming chmod, the daemon pretends the directory is a file
                     52: # for the purposes of the second application of the incoming chmod.
                     53: 
                     54: build_rsyncd_conf
                     55: cat >>"$scratchdir/test-rsyncd.conf" <<EOF
                     56: [test-incoming-chmod]
                     57:        path = $todir
                     58:        read only = no
                     59:        incoming chmod = Fo-x
                     60: EOF
                     61: 
                     62: RSYNC_CONNECT_PROG="$RSYNC --config=$conf --daemon"
                     63: export RSYNC_CONNECT_PROG
                     64: 
                     65: rm -r "$todir"
                     66: makepath "$todir"
                     67: 
                     68: checkit "$RSYNC -avv --no-perms '$fromdir/' localhost::test-incoming-chmod/" "$checkdir" "$todir"
                     69: 
                     70: # The script would have aborted on error, so getting here means we've won.
                     71: exit 0

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>