f23608bf560c2db8fe718c258c3ebc522aa6d227
[mmh] / test / runtest
1 #!/bin/sh
2
3 status=1
4
5 [ $# -eq 1 ]  ||  echo "usage: $0 "'<testname>'
6
7 # Get full pathnames that we'll need.
8 cd `dirname $0`
9
10 export MH_TEST_DIR=`pwd`/testinstall
11 export MH=$MH_TEST_DIR/Mail/.mh_profile
12 export PATH=$MH_TEST_DIR/bin:$PATH
13 export MH_TEST_COMMON=$PWD/common.sh
14
15 [ -d $MH_TEST_DIR ] || ./setup-test
16
17 # clean old test data
18 trap "rm -rf $MH_TEST_DIR/Mail; exit \$status" 0
19 # setup test data
20 rm -rf $MH_TEST_DIR/Mail
21 mkdir $MH_TEST_DIR/Mail
22 echo "Path: $MH_TEST_DIR/Mail" > $MH
23 folder -create +inbox > /dev/null
24 # create 10 basic messages
25 for i in 1 2 3 4 5 6 7 8 9 10;
26 do
27     cat > $MH_TEST_DIR/Mail/inbox/$i <<EOF
28 From: Test$i <test$i@example.com>
29 To: Some User <user@example.com>
30 Date: Fri, 29 Sep 2006 00:00:00
31 Subject: Testing message $i
32
33 This is message number $i
34 EOF
35 done
36
37 # now run the test
38 set +e
39 /bin/sh $1
40 return_value=$?
41 set -e
42
43 if [ $return_value -eq 0 ]; then
44     echo Test $1 PASS
45     status=0
46 elif [ $return_value -eq 120 ]; then
47     # indicates test was skipped (eg needed program not found)
48     # test itself should have printed a message about this,
49     # so print nothing here.
50     status=0
51 else
52     echo Test $1 FAIL
53 fi