1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
|
#!/bin/sh
######################################################
#
# Test mhparam
#
######################################################
set -e
if test -z "${MH_OBJ_DIR}"; then
srcdir=`dirname $0`/../..
MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
fi
. "$MH_OBJ_DIR/test/common.sh"
setup_test
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
actual=$MH_TEST_DIR/$$.actual
actual_err=$MH_TEST_DIR/$$.actual_err
# check -help
cat >$expected <<EOF
Usage: mhparam [profile-components] [switches]
switches are:
-[no]components
-all
-version
-help
-(debug)
EOF
mhparam -help >$actual 2>&1
check $expected $actual
# check -version
case `mhparam -v` in
mhparam\ --*) ;;
* ) echo "$0: mhparam -v generated unexpected output" 1>&2
failed=`expr ${failed:-0} + 1`;;
esac
# check unknown option
run_test 'mhparam -nonexistent' 'mhparam: -nonexistent unknown'
# check -all
cp "$MH" $expected
# -all adds current folder
echo 'Current-Folder: '`folder -f` >>$expected
run_prog mhparam -all >$actual
check $expected $actual 'keep first'
# check -all with a component
echo 'mhparam: profile-components ignored with -all' >$expected_err
run_prog mhparam -all path >$actual 2>$actual_err
check $expected $actual 'keep first'
check $expected_err $actual_err
# check -all with -components
echo 'mhparam: -components ignored with -all' >$expected_err
run_prog mhparam -all -components >$actual 2>$actual_err
check $expected $actual
check $expected_err $actual_err
# check one component
run_test 'mhparam path' "$MH_TEST_DIR/Mail"
# check more than one component, which enables -component
echo 'AliasFile: aliases' >>"$MH"
run_test 'mhparam path AliasFile' "path: $MH_TEST_DIR/Mail
AliasFile: aliases"
# check each component in procs array in uip/mhparam.c
# The tests don't override these, so they're default or configured values.
# Note that cat is hardcoded here because the testsuite uses it for moreproc.
cat >$expected <<EOF
context
.mh_sequences
$MH_INST_DIR$bindir/mhbuild
$MH_INST_DIR$bindir/refile
700
$bindir/inc
more
$bindir/mhmail
$MH_INST_DIR$auxexecdir/mhl
cat
600
$bindir/msh
$bindir/packf
$MH_INST_DIR$auxexecdir/post
$bindir/send
$bindir/mhshow
$MH_INST_DIR$auxexecdir/mhl
nmh-`cat ${srcdir}/VERSION`
$bindir/msh
$bindir/whatnow
$bindir/whom
$sysconfdir
${MH_LIB_DIR}
fcntl
${default_locking}
EOF
run_prog mhparam -nocomponent \
context \
mh-sequences \
buildmimeproc \
fileproc \
foldprot \
incproc \
lproc \
mailproc \
mhlproc \
moreproc \
msgprot \
mshproc \
packproc \
postproc \
sendproc \
showmimeproc \
showproc \
version \
vmhproc \
whatnowproc \
whomproc \
etcdir \
libdir \
datalocking \
spoollocking >$actual 2>&1
check $expected $actual
#### This exits with non-zero status, so let run_test squash that:
run_test 'mhparam formatproc rmmproc' ''
#### Test sbackup separately because it's only passed as a -D compile option.
case `mhparam sbackup` in
,|\#) ;;
* ) echo mhparam sbackup failed
failed=`expr ${failed:-0} + 1` ;;
esac
# check -component
run_test 'mhparam -component Path' "Path: $MH_TEST_DIR/Mail"
# check -component, note that component name of argument is echoed exactly
run_test 'mhparam -component path' "path: $MH_TEST_DIR/Mail"
run_test 'mhparam -component PATH' "PATH: $MH_TEST_DIR/Mail"
# check -nocomponent
run_test 'mhparam -component -nocomponent path' "$MH_TEST_DIR/Mail"
run_test 'mhparam -nocomponent path AliasFile' "$MH_TEST_DIR/Mail
aliases"
# check nonexistent component
run_test 'mhparam nonexistent' ''
# check that return status counts nonexistent components
set +e
mhparam path context nonexistent1 nonexistent2 nonexistent3 >/dev/null
run_test "echo $?" 3
set -e
# mhparam -debug
# Some of its output depends on configure options, so don't bother to
# check for correctness here.
mhparam -debug >/dev/null
# check with text file that does not end with newline
printf 'Editor: emacs' >>"$MH"
run_test 'mhparam -nocomponent editor' 'emacs'
exit $failed
|