Fixed an "Internal abbrev error" when dealing with an xattr value
[rsync/rsync.git] / testsuite / xattrs.test
index c9904a1..11b53c5 100644 (file)
@@ -20,7 +20,7 @@ case "`xattr 2>&1`" in
     xls() {
        xattr -l "${@}"
     }
-    RUSR='rsync'
+    RUSR='rsync.nonuser'
     ;;
 *)
     xset() {
@@ -78,36 +78,62 @@ xset $RUSR.equal 'this long attribute should remain the same and not need to be
 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 file1 ../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