File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / rsync / testsuite / chmod-option.test
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Oct 14 07:51:15 2013 UTC (10 years, 8 months ago) by misho
Branches: rsync, MAIN
CVS tags: v3_2_3, v3_1_2p5, RSYNC3_1_0, HEAD
v 3.1.0

    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: . $suitedir/rsync.fns
   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>