aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/chown.test
blob: 90af529e21dfbd62093b968491143783d523d3be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#! /bin/sh

# Copyright (C) 2002 by Martin Pool <mbp@samba.org>

# This program is distributable under the terms of the GNU GPL (see
# COPYING).

# Test that when rsync is running as root and has -a it correctly sets
# the ownership of the destination.

# We don't know what users will be present on this system, so we just
# use random numeric uids and gids.

. "$suitedir/rsync.fns"

set -x

case `id -u` in
'') ;; # If "id" failed, try to continue...
0)  ;;
*)  if [ -f /usr/bin/fakeroot ]; then
	echo "Let's try re-running the script under fakeroot..."
	exec /usr/bin/fakeroot /bin/sh "$0"
    fi
    ;;
esac

# Build some hardlinks

mkdir "$fromdir"
name1="$fromdir/name1"
name2="$fromdir/name2"
echo "This is the file" > "$name1"
echo "This is the other file" > "$name2"

chown 5000 "$name1" || test_skipped "Can't chown (probably need root)"
chown 5001 "$name2" || test_skipped "Can't chown (probably need root)"
chgrp 5002 "$name1" || test_skipped "Can't chgrp (probably need root)"
chgrp 5003 "$name2" || test_skipped "Can't chgrp (probably need root)"

checkit "$RSYNC -aHvv \"$fromdir/\" \"$todir/\"" "$fromdir" "$todir"

# The script would have aborted on error, so getting here means we've won.
exit 0