Commit | Line | Data |
---|---|---|
1c3344a1 WD |
1 | #! /bin/sh |
2 | ||
3 | # This program is distributable under the terms of the GNU GPL (see | |
4 | # COPYING). | |
5 | ||
6 | # Test that rsync handles basic ACL preservation. | |
7 | ||
8 | . $srcdir/testsuite/rsync.fns | |
9 | ||
10 | $RSYNC --version | grep ", ACLs" >/dev/null || test_skipped "Rsync is configured without ACL support" | |
11 | ||
12 | case "$RSYNC" in | |
13 | *protocol=29*) test_skipped "ACLs require protocol 30" ;; | |
14 | esac | |
15 | ||
16 | case "$setfacl_nodef" in | |
17 | true) test_skipped "I don't know how to use your setfacl command" ;; | |
18 | esac | |
19 | ||
20 | makepath "$fromdir/foo" | |
21 | echo something >"$fromdir/file1" | |
22 | echo else >"$fromdir/file2" | |
23 | ||
24 | files='foo file1 file2' | |
25 | ||
26 | setfacl -m u:0:7 "$fromdir/foo" || test_skipped "Your filesystem has ACLs disabled" | |
27 | setfacl -m u:0:5 "$fromdir/file1" | |
28 | setfacl -m u:0:5 "$fromdir/file2" | |
29 | ||
30 | $RSYNC -avvA "$fromdir/" "$todir/" | |
31 | ||
32 | cd "$fromdir" | |
33 | getfacl $files >"$scratchdir/acls.txt" | |
34 | ||
35 | cd "$todir" | |
36 | getfacl $files | diff $diffopt "$scratchdir/acls.txt" - | |
37 | ||
38 | # The script would have aborted on error, so getting here means we've won. | |
39 | exit 0 |