+$RSYNC -ai "$fromdir/block" "$todir/block2" \
+ | tee "$outfile"
+cat <<EOT >"$chkfile"
+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
+EOT
+diff $diffopt "$chkfile" "$outfile" || test_fail "test 2 failed"
+
+sleep 1
+
+$RSYNC -Di "$fromdir/block3" "$todir/block" \
+ | tee "$outfile"
+cat <<EOT >"$chkfile"
+cD..T...... block3
+EOT
+diff $diffopt "$chkfile" "$outfile" || test_fail "test 3 failed"
+
+$RSYNC -aiHvv "$fromdir/" "$todir/" \
+ | 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
+EOT
+if test ! -r "$fromdir/block2.5"; then
+ sed -e '/block2\.5/d' <"$chkfile" >"$chkfile.new"
+ mv "$chkfile.new" "$chkfile"
+fi
+diff $diffopt "$chkfile" "$outfile" || test_fail "test 4 failed"
+
+echo "check how the directory listings compare with diff:"
+echo ""
+( cd "$fromdir" && rsync_ls_lR . ) > "$tmpdir/ls-from"
+( 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