runtest() {
echo $ECHO_N "Test $1: $ECHO_C"
- eval "$2"
+ if eval "$2"
+ then
+ echo "${ECHO_T} done."
+ return 0
+ else
+ echo "${ECHO_T} failed!"
+ return 1
+ fi
}
printmsg() {
# Build test directories TO and FROM, with FROM full of files.
hands_setup() {
+ # Clean before creation
+ rm -rf $FROM
+ rm -rf $TO
+
[ -d $FROM ] || mkdir $FROM
[ -d $TO ] || mkdir $TO
+
+####################
+# Many machines do not have "mkdir -p", so we have to build up long paths.
+# How boring.
+makepath () {
+ p="$1"
+ (
+ # Absolut Unix.
+ if echo $p | grep '^/' >/dev/null
+ then
+ cd /
+ fi
+
+ # This will break if $1 contains a space.
+ for c in `echo $p | tr '/' ' '`
+ do
+ [ -d "$c" ] || mkdir "$c" || return $?
+ cd "$c" || return $?
+ done
+ )
+}
+
+
+
###########################
# Run a test (in '$1') then compare directories $2 and $3 to see if
# there are any difference. If there are, explain them.
( cd $3 ; ls -laR ) > ${TMP}/ls-to 2>>${log}
diff -c ${TMP}/ls-from ${TMP}/ls-to >>${log} 2>&1 || failed=YES
if [ -z "${failed}" ] ; then
- echo "${ECHO_T} done."
rm $log
return 0
else
- echo "${ECHO_T} failed!"
cat ${log}
rm ${log}
return 1