* test/runtest, test/tests/inc/test-deb359167,
[mmh] / test / runtest
index d970b18..0b18653 100755 (executable)
@@ -1,15 +1,57 @@
 #!/bin/sh
 
-export MH=`cat test-temp-dir`/mh_profile
+set -e
+
+if [ ! -e test-temp-dir ]; then
+   echo "test-temp-dir not found: running setup-test"
+   ./setup-test
+fi
+
 export MH_TEST_DIR=`cat test-temp-dir`
+
+if [ ! -e "$MH_TEST_DIR/bld/Makefile" ]; then
+   echo "temporary directory missing or broken: running setup-test"
+   ./setup-test
+   export MH_TEST_DIR=`cat test-temp-dir`
+fi
+
+export MH=$MH_TEST_DIR/Mail/.mh_profile
 export PATH=$MH_TEST_DIR/bin:$PATH
 
-/bin/sh $1
+export MH_TEST_COMMON=$PWD/common.sh
+
+# clean old test data
+rm -rf $MH_TEST_DIR/Mail
+# setup test data
+mkdir $MH_TEST_DIR/Mail
+echo "Path: $MH_TEST_DIR/Mail" > $MH
+folder -create +inbox > /dev/null
+# create 10 basic messages
+for i in `seq 1 10`;
+do
+    cat > $MH_TEST_DIR/Mail/inbox/$i <<EOF
+From: Test$i <test$i@example.com>
+To: Some User <user@example.com>
+Date: Fri, 29 Sep 2006 00:00:00
+Subject: Testing message $i
 
+This is message number $i
+EOF
+done
+
+# now run the test
+set +e
+/bin/sh $1
 return_value=$?
+set -e
 
 if [ $return_value -eq 0 ] ; then
     echo Test $1 PASS
+elif [ $return_value -eq 120 ]; then
+    # indicates test was skipped (eg needed program not found)
+    # test itself should have printed a message about this,
+    # so print nothing here.
+    :
 else
     echo Test $1 FAIL
 fi