# there are any difference. If there are, explain them.
checkit() {
- log=${LOG}
failed=
- # the log accumulates all output; we only display it if there
- # is a problem.
- echo "Running: \"$1\"" >${log}
- echo "">>${log}
- eval "$1" >>${log} 2>&1
+ # We can just write everything to stdout/stderr, because the
+ # wrapper hides it unless there is a problem.
+
+ echo "Running: \"$1\""
+ eval "$1"
status=$?
if [ $status != 0 ]; then
failed="YES";
fi
- echo "-------------">>${log}
- echo "check how the files compare with diff:">>${log}
- echo "">>${log}
- diff -cr $2 $3 >>${log} 2>&1 || failed=YES
- echo "-------------">>${log}
- echo "check how the directory listings compare with diff:">>${log}
- echo "">>${log}
- ( cd "$2" && rsync_ls_lR . ) > ${TMP}/ls-from 2>>${log}
- ( cd "$3" && rsync_ls_lR . ) > ${TMP}/ls-to 2>>${log}
- diff -c ${TMP}/ls-from ${TMP}/ls-to >>${log} 2>&1 || failed=YES
+ echo "-------------"
+ echo "check how the files compare with diff:"
+ echo ""
+ for f in `cd "$2"; find . -type f -print `
+ do
+ diff -u "$2"/"$f" "$3"/"$f" || failed=YES
+ done
+
+ echo "-------------"
+ echo "check how the directory listings compare with diff:"
+ echo ""
+ ( cd "$2" && rsync_ls_lR . ) > ${TMP}/ls-from
+ ( cd "$3" && rsync_ls_lR . ) > ${TMP}/ls-to
+ diff -c ${TMP}/ls-from ${TMP}/ls-to || failed=YES
if [ -z "${failed}" ] ; then
- rm $log
return 0
else
- cat ${log}
- rm ${log}
return 1
fi
}
ln -s referent "$fromdir/relative"
ln -s "$fromdir/referent" "$fromdir/absolute"
ln -s nonexistent "$fromdir/dangling"
+ ln -s "$srcdir/rsync.c" "$fromdir/unsafe"
}
test_fail() {
exit 1
}
+test_skipped() {
+ echo "$@" >&2
+ exit 77
+}
+
+# It failed, but we expected that. don't dump out error logs,
+# because most users won't want to see them. But do leave
+# the working directory around.
+test_xfail() {
+ echo "$@" >&2
+ exit 78
+}
+
# be reproducible
umask 077
\ No newline at end of file