summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2008-03-07 16:16:29 -0800
committerWayne Davison <wayned@samba.org>2008-03-07 16:23:21 -0800
commitd724dd186ed6a2d66fa13a9357ce91e459d39e8c (patch)
treeb84c732cf840c1b32ce0b27731f6448b8cc3a673 /testsuite
parentcbbd8e2e8bf72aa46c84c7de43e19da40f040fa7 (diff)
downloadrsync-d724dd186ed6a2d66fa13a9357ce91e459d39e8c.tar.gz
Fixed the interaction of --fake-super with --link-dest & --xattrs.
Fixed the munging of non-user namespace xattrs w/--fake-super. Fixed the sorting of received xattrs when name-munging occurs. Added xattr tests to verify that these things stay fixed.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/xattrs.test17
1 files changed, 14 insertions, 3 deletions
diff --git a/testsuite/xattrs.test b/testsuite/xattrs.test
index 97c5f8d3..66c3e752 100644
--- a/testsuite/xattrs.test
+++ b/testsuite/xattrs.test
@@ -20,6 +20,7 @@ case "`xattr 2>&1`" in
xls() {
xattr -l "${@}"
}
+ RUSR='rsync'
;;
*)
xset() {
@@ -31,6 +32,7 @@ case "`xattr 2>&1`" in
xls() {
getfattr -d "${@}"
}
+ RUSR='user.rsync'
;;
esac
@@ -65,13 +67,15 @@ xset user.long 'a long attribute for our new file that tests to ensure that this
xset user.foo 'new foo' foo/file3 foo/bar/file5
xset user.bar 'new bar' foo/file3 foo/bar/file5
xset user.long 'this is also a long attribute that will be truncated in the initial data send' foo/file3 foo/bar/file5
-xset user.equal 'this long attribute should remain the same and not need to be transferred' foo/file3 foo/bar/file5
+xset $RUSR.equal 'this long attribute should remain the same and not need to be transferred' foo/file3 foo/bar/file5
+xset $RUSR.equal 'this short' foo/file3 foo/bar/file5
xset user.short 'old short' "$chkdir/file1"
xset user.extra 'remove me' "$chkdir/file1"
xset user.foo 'old foo' "$chkdir/foo/file3"
-xset user.equal 'this long attribute should remain the same and not need to be transferred' "$chkdir/foo/file3"
+xset $RUSR.equal 'this long attribute should remain the same and not need to be transferred' "$chkdir/foo/file3"
+xset $RUSR.equal 'this short' "$chkdir/foo/file3"
xls $files >"$scratchdir/xattrs.txt"
@@ -95,10 +99,17 @@ xls $files >"$scratchdir/xattrs.txt"
rm -rf "$todir"
-checkit "$RSYNC -aiX --link-dest=../chk . ../to" "$chkdir" "$todir"
+checkit "$RSYNC -aiX --fake-super --link-dest=../chk . ../to" "$chkdir" "$todir"
cd "$todir"
xls $files | diff $diffopt "$scratchdir/xattrs.txt" -
+sed -n -e '/\.\/file1$/d' -e '/^[^ ]* *[^ ]* *[^ ]* *1 /p' "$scratchdir/ls-to" >"$scratchdir/ls-diff"
+if [ -s "$scratchdir/ls-diff" ]; then
+ echo "Missing hard links on:"
+ cat "$scratchdir/ls-diff"
+ exit 1
+fi
+
# The script would have aborted on error, so getting here means we've won.
exit 0