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