Rework in the test framework; updated and new tests
[mmh] / test / tests / mhparam / test-mhparam
diff --git a/test/tests/mhparam/test-mhparam b/test/tests/mhparam/test-mhparam
new file mode 100755 (executable)
index 0000000..c2fc5de
--- /dev/null
@@ -0,0 +1,186 @@
+#!/bin/sh
+######################################################
+#
+# Test mhparam
+#
+######################################################
+
+
+. "$MH_TEST_COMMON"
+
+
+# check -help
+runandcheck "mhparam -help" <<!
+Usage: mhparam [profile-components] [switches]
+  switches are:
+  -[no]components
+  -all
+  -Version
+  -help
+!
+
+
+# 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
+runandcheck 'mhparam -nonexistent' <<!
+mhparam: -nonexistent unknown
+!
+
+# check -all
+cp "$MMH/profile" "$MMH/profile2"
+
+MMHP="$MMH/profile2"
+export MMHP
+
+# -all adds current folder
+runandcheck "mhparam -all" <<!
+Path: $MH_TEST_DIR/Mail
+Inbox: +inbox
+Current-Folder: inbox
+!
+
+
+# check -all with a component
+runandcheck "mhparam -all path >/dev/null" <<!
+mhparam: profile-components ignored with -all
+!
+
+# check -all with -components
+runandcheck "mhparam -all -components >/dev/null" <<!
+mhparam: -components ignored with -all
+!
+
+# check one component
+runandcheck 'mhparam path' <<!
+$MH_TEST_DIR/Mail
+!
+
+# check more than one component, which enables -component
+echo 'AliasFile: aliases' >>"$MMHP"
+runandcheck 'mhparam path AliasFile' <<!
+path: $MH_TEST_DIR/Mail
+AliasFile: aliases
+!
+
+
+#### This exits with non-zero status, so let runandcheck squash that:
+runandcheck 'mhparam formatproc rmmproc' <<!
+!
+
+
+# check -component
+runandcheck 'mhparam -component Path' <<!
+Path: $MH_TEST_DIR/Mail
+!
+
+# check -component, note that component name of argument is echoed exactly
+runandcheck 'mhparam -component path' <<!
+path: $MH_TEST_DIR/Mail
+!
+runandcheck 'mhparam -component PATH' <<!
+PATH: $MH_TEST_DIR/Mail
+!
+
+# check -nocomponent
+runandcheck 'mhparam -component -nocomponent path' <<!
+$MH_TEST_DIR/Mail
+!
+runandcheck 'mhparam -nocomponent path AliasFile' <<!
+$MH_TEST_DIR/Mail
+aliases
+!
+
+
+# check nonexistent component
+runandcheck 'mhparam nonexistent' <<!
+!
+
+
+# check that return status counts nonexistent components
+runandcheck "mhparam path context nonexistent1 nonexistent2 \
+               nonexistent3 >/dev/null; echo \$?" <<!
+3
+!
+# check that return status counts nonexistent components
+runandcheck "mhparam path context nonexistent1 nonexistent2 \
+               nonexistent3 inbox >/dev/null; echo \$?" <<!
+3
+!
+
+# mhparam -debug
+# Some of its output depends on configure options, so don't bother to
+# check for correctness here.
+runandcheck "mhparam -debug >/dev/null; echo \$?" <<!
+0
+!
+
+# check with text file that does not end with newline
+printf 'Editor: emacs' >>"$MMHP"
+runandcheck 'mhparam -nocomponent editor' <<!
+emacs
+!
+
+
+exit
+
+# FIXME: needs to be adjusted or removed ...
+
+# 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.
+
+runandcheck "mhparam -nocomponent \
+               context \
+               mh-sequences \
+               buildmimeproc \
+               fileproc \
+               foldprot \
+               incproc \
+               lproc \
+               mailproc \
+               mhlproc \
+               moreproc \
+               msgprot \
+               packproc \
+               postproc \
+               sendproc \
+               showmimeproc \
+               showproc \
+               version \
+               whatnowproc \
+               whomproc \
+               etcdir \
+               libexecdir \
+               datalocking \
+               spoollocking" <<!
+context
+.mh_sequences
+$MH_INST_DIR$bindir/mhbuild
+$MH_INST_DIR$bindir/refile
+700
+$bindir/inc
+more
+$MH_INST_DIR$bindir/mhmail
+$MH_INST_DIR$nmhlibexecdir/mhl
+cat
+600
+$bindir/packf
+$MH_INST_DIR$nmhlibexecdir/post
+$MH_INST_DIR$bindir/send
+$MH_INST_DIR$bindir/mhshow
+$MH_INST_DIR$nmhlibexecdir/mhl
+nmh-`cat ${srcdir}/VERSION`
+$MH_INST_DIR$bindir/whatnow
+$MH_INST_DIR$bindir/whom
+$nmhetcdirinst
+$MH_LIBEXEC_DIR
+fcntl
+${default_locking}
+!
+