Annotation of embedaddon/rsync/testsuite/chown.test, revision 1.1.1.1

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 when rsync is running as root and has -a it correctly sets
                      9: # the ownership of the destination.
                     10: 
                     11: # We don't know what users will be present on this system, so we just
                     12: # use random numeric uids and gids.
                     13: 
                     14: . "$suitedir/rsync.fns"
                     15: 
                     16: case $0 in
                     17: *fake*)
                     18:     $RSYNC --version | grep ", xattrs" >/dev/null || test_skipped "Rsync needs xattrs for fake device tests"
                     19:     RSYNC="$RSYNC --fake-super"
                     20:     TLS_ARGS="$TLS_ARGS --fake-super"
                     21:     case "`xattr 2>&1`" in
                     22:     *--list:*)
                     23:        chown() {
                     24:            own=$1
                     25:            shift
                     26:            xattr -s 'rsync.%stat' "100644 0,0 $own" "${@}"
                     27:        }
                     28:        ;;
                     29:     *)
                     30:        chown() {
                     31:            own=$1
                     32:            shift
                     33:            setfattr -n 'user.rsync.%stat' -v "100644 0,0 $own" "${@}"
                     34:        }
                     35:        ;;
                     36:     esac
                     37:     ;;
                     38: *)
                     39:     RSYNC="$RSYNC --super"
                     40:     case `get_testuid` in
                     41:     '') ;; # If "id" failed, try to continue...
                     42:     0)  ;;
                     43:     *)  if [ -f /usr/bin/fakeroot ]; then
                     44:            echo "Let's try re-running the script under fakeroot..."
                     45:            exec /usr/bin/fakeroot /bin/sh "$0"
                     46:        fi
                     47:        ;;
                     48:     esac
                     49:     ;;
                     50: esac
                     51: 
                     52: # Build some hardlinks
                     53: 
                     54: mkdir "$fromdir"
                     55: name1="$fromdir/name1"
                     56: name2="$fromdir/name2"
                     57: echo "This is the file" > "$name1"
                     58: echo "This is the other file" > "$name2"
                     59: 
                     60: chown 5000:5002 "$name1" || test_skipped "Can't chown (probably need root)"
                     61: chown 5001:5003 "$name2" || test_skipped "Can't chown (probably need root)"
                     62: 
                     63: cd "$fromdir/.."
                     64: checkit "$RSYNC -aHvv from/ to/" "$fromdir" "$todir"
                     65: 
                     66: # The script would have aborted on error, so getting here means we've won.
                     67: exit 0

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