Annotation of embedaddon/rsync/testsuite/chown.test, revision 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>