X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/67347196b13941fdf455517855481875ccf21152..d3f5c628d7bdec6f7334bbae68a7bee1f5285815:/testsuite/xattrs.test diff --git a/testsuite/xattrs.test b/testsuite/xattrs.test index 8a311c4a..74f17db2 100644 --- a/testsuite/xattrs.test +++ b/testsuite/xattrs.test @@ -5,7 +5,7 @@ # Test that rsync handles basic xattr preservation. -. $srcdir/testsuite/rsync.fns +. $suitedir/rsync.fns $RSYNC --version | grep ", xattrs" >/dev/null || test_skipped "Rsync is configured without xattr support" @@ -46,9 +46,10 @@ echo deeper >"$fromdir/foo/bar/file5" makepath "$chkdir/foo" echo wow >"$chkdir/file1" -cp -p "$fromdir/foo/file3" "$chkdir/foo" +cp_touch "$fromdir/foo/file3" "$chkdir/foo" -files='foo file0 file1 file2 foo/file3 file4 foo/bar/file5' +files='foo file0 file1 file2 foo/file3 file4 foo/bar foo/bar/file5' +uid_gid=`"$TOOLDIR/tls" "$fromdir/foo" | sed 's/^.* \([0-9][0-9]*\)\.\([0-9][0-9]*\) .*/\1:\2/'` cd "$fromdir" @@ -106,20 +107,43 @@ 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 '/^[^ ][^ ]* *[^ ][^ ]* *[^ ][^ ]* *1 /p' "$scratchdir/ls-to" >"$scratchdir/ls-diff-all" +fgrep -v './file1' "$scratchdir/ls-diff-all" >"$scratchdir/ls-diff" || : if [ -s "$scratchdir/ls-diff" ]; then echo "Missing hard links on:" cat "$scratchdir/ls-diff" exit 1 fi +if [ ! -s "$scratchdir/ls-diff-all" ]; then + echo "Too many hard links on file1!" + exit 1 +fi + +cd "$chkdir" +chmod go-rwx . $files + +xset user.nice 'this is nice, but different' file1 +xset user.rsync.%stat "100000 0,0 $uid_gid" $files +xset user.rsync.%stat "40000 0,0 $uid_gid" foo foo/bar + +xls $files >"$scratchdir/xattrs.txt" + +cd "$fromdir" +rm -rf "$todir" + +# When run by a non-root tester, this checks if no-user-perm files/dirs can be copied. +checkit "$RSYNC -aiX --fake-super --chmod=a= . ../to" "$chkdir" "$todir" # 2>"$scratchdir/errors.txt" + +cd "$todir" +xls $files | diff $diffopt "$scratchdir/xattrs.txt" - cd "$fromdir" rm -rf "$todir" "$chkdir" -rsync -aX file1 file2 -rsync -aX file1 file2 ../chk/ -rsync -aX --del ../chk/ . -rsync -aX file1 ../lnk/ +$RSYNC -aX file1 file2 +$RSYNC -aX file1 file2 ../chk/ +$RSYNC -aX --del ../chk/ . +$RSYNC -aX file1 ../lnk/ xls file1 file2 >"$scratchdir/xattrs.txt" @@ -132,7 +156,7 @@ cd "$fromdir" rm "$todir/file2" echo extra >file1 -rsync -aX . ../chk/ +$RSYNC -aX . ../chk/ checkit "$RSYNC -aiiX . ../to" "$chkdir" "$todir"