Here's a better fix that e194fdf11df779597e19039a67454e9b42a77ef0
[mmh] / test / mhparam / test-mhparam
index 6615748..cde481c 100755 (executable)
@@ -30,17 +30,18 @@ Usage: mhparam [profile-components] [switches]
   -all
   -version
   -help
+  -(debug)
 EOF
-# The exit status is 1 with -help, so invert it to prevent
-# triggering immediate exit due to set -e.
-! mhparam -help >$actual 2>&1
+
+mhparam -help >$actual 2>&1
 check $expected $actual
 
 # check -version
-if ! mhparam -v | grep '^mhparam --' >/dev/null; then
-  echo "$0: mhparam -v generated unexpected output" 1>&2
-  failed=`expr ${failed:-0} + 1`
-fi
+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'
@@ -72,6 +73,74 @@ echo 'AliasFile: aliases' >>"$MH_TEST_DIR/Mail/.mh_profile"
 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
+$bindir/mhbuild
+$MH_INST_DIR$bindir/refile
+700
+$bindir/inc
+$auxexecdir/install-mh
+$pagerpath
+$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}
+EOF
+
+mhparam -nocomponent \
+context \
+mh-sequences \
+buildmimeproc \
+fileproc \
+foldprot \
+incproc \
+installproc \
+lproc \
+mailproc \
+mhlproc \
+moreproc \
+msgprot \
+mshproc \
+packproc \
+postproc \
+sendproc \
+showmimeproc \
+showproc \
+version \
+vmhproc \
+whatnowproc \
+whomproc \
+etcdir \
+libdir >$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"
 
@@ -93,7 +162,7 @@ mhparam path context nonexistent1 nonexistent2 nonexistent3 >/dev/null
 run_test "echo $?" 3
 set -e
 
-# mhparam -debug (undocumented)
+# mhparam -debug
 # Some of its output depends on configure options, so don't bother to
 # check for correctness here.
 mhparam -debug >/dev/null