$RSYNC -ai "$fromdir/block" "$todir/block2" \
| tee "$outfile"
cat <<EOT >"$chkfile"
-cD+++++++ block
+cD+++++++++ block
EOT
diff $diffopt "$chkfile" "$outfile" || test_fail "test 1 failed"
$RSYNC -ai "$fromdir/block2" "$todir/block" \
| tee "$outfile"
cat <<EOT >"$chkfile"
-cD+++++++ block2
+cD+++++++++ block2
EOT
diff $diffopt "$chkfile" "$outfile" || test_fail "test 2 failed"
$RSYNC -Di "$fromdir/block3" "$todir/block" \
| tee "$outfile"
cat <<EOT >"$chkfile"
-cD..T.... block3
+cD..T...... block3
EOT
diff $diffopt "$chkfile" "$outfile" || test_fail "test 3 failed"
| tee "$outfile"
filter_outfile
cat <<EOT >"$chkfile"
-.d..t.... ./
-cD..t.... block
-cD....... block2
-cD+++++++ block3
-hD+++++++ block2.5 => block3
-cD+++++++ char
-cD+++++++ char2
-cD+++++++ char3
-cS+++++++ fifo
+.d..t...... ./
+cD..t...... block
+cD block2
+cD+++++++++ block3
+hD+++++++++ block2.5 => block3
+cD+++++++++ char
+cD+++++++++ char2
+cD+++++++++ char3
+cS+++++++++ fifo
EOT
if test ! -b "$fromdir/block2.5"; then
sed -e '/block2\.5/d' \
( cd "$todir" && rsync_ls_lR . ) > "$tmpdir/ls-to"
diff $diffopt "$tmpdir/ls-from" "$tmpdir/ls-to"
+if test -b "$fromdir/block2.5"; then
+ set -x
+ $RSYNC -aii --link-dest="$todir" "$fromdir/" "$chkdir/" \
+ | tee "$outfile"
+ cat <<EOT >"$chkfile"
+cd ./
+hD block
+hD block2
+hD block2.5
+hD block3
+hD char
+hD char2
+hD char3
+hS fifo
+EOT
+ diff $diffopt "$chkfile" "$outfile" || test_fail "test 4 failed"
+fi
+
# The script would have aborted on error, so getting here means we've won.
exit 0