X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d724dd186ed6a2d66fa13a9357ce91e459d39e8c..6283e9ef43dcea5843a12604e27f6b26ef93682d:/testsuite/xattrs.test diff --git a/testsuite/xattrs.test b/testsuite/xattrs.test index 66c3e752..93e23a9b 100644 --- a/testsuite/xattrs.test +++ b/testsuite/xattrs.test @@ -20,7 +20,7 @@ case "`xattr 2>&1`" in xls() { xattr -l "${@}" } - RUSR='rsync' + RUSR='rsync.nonuser' ;; *) xset() { @@ -68,48 +68,72 @@ 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 $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 $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" # OK, let's try a simple xattr copy. -checkit "$RSYNC -avX . '$chkdir/'" "$fromdir" "$chkdir" +checkit "$RSYNC -avX --super . '$chkdir/'" "$fromdir" "$chkdir" cd "$chkdir" xls $files | diff $diffopt "$scratchdir/xattrs.txt" - cd "$fromdir" -checkit "$RSYNC -aiX --copy-dest=../chk . ../to" "$fromdir" "$todir" +checkit "$RSYNC -aiX --super --copy-dest=../chk . ../to" "$fromdir" "$todir" cd "$todir" xls $files | diff $diffopt "$scratchdir/xattrs.txt" - cd "$fromdir" +rm -rf "$todir" + xset user.nice 'this is nice, but different' file1 xls $files >"$scratchdir/xattrs.txt" -rm -rf "$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" +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 +cd "$fromdir" +rm -rf "$todir" "$chkdir" + +rsync -aX file1 file2 +rsync -aX file1 file2 ../chk/ +rsync -aX --del ../chk/ . +rsync -aX file1 ../lnk/ + +xls file1 file2 >"$scratchdir/xattrs.txt" + +checkit "$RSYNC -aiiX --copy-dest=../lnk . ../to" "$chkdir" "$todir" + +cd "$todir" +xls file1 file2 | diff $diffopt "$scratchdir/xattrs.txt" - + +cd "$fromdir" +rm "$todir/file2" + +echo extra >file1 +rsync -aX . ../chk/ + +checkit "$RSYNC -aiiX . ../to" "$chkdir" "$todir" + +cd "$todir" +xls file1 file2 | diff $diffopt "$scratchdir/xattrs.txt" - + # The script would have aborted on error, so getting here means we've won. exit 0