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