]> diplodocus.org Git - nmh/blobdiff - test/mhparam/test-mhparam
Work around flex 2.6.3 bug by conditionally #undef yywrap.
[nmh] / test / mhparam / test-mhparam
index 7d2c602184069a0b5f85de2432ac983d90fae3c8..e2b9719036431886a4f2b0093042582d6fa1c232 100755 (executable)
@@ -16,6 +16,9 @@ fi
 
 setup_test
 
 
 setup_test
 
+check_exit '-eq 1' mhparam -
+check_exit '-eq 0' mhparam localmbox
+
 expected=$MH_TEST_DIR/$$.expected
 expected_err=$MH_TEST_DIR/$$.expected_err
 actual=$MH_TEST_DIR/$$.actual
 expected=$MH_TEST_DIR/$$.expected
 expected_err=$MH_TEST_DIR/$$.expected_err
 actual=$MH_TEST_DIR/$$.actual
@@ -23,6 +26,7 @@ actual_err=$MH_TEST_DIR/$$.actual_err
 
 
 # check -help
 
 
 # check -help
+start_test "-help"
 cat >$expected <<EOF
 Usage: mhparam [profile-components] [switches]
   switches are:
 cat >$expected <<EOF
 Usage: mhparam [profile-components] [switches]
   switches are:
@@ -33,10 +37,12 @@ Usage: mhparam [profile-components] [switches]
   -(debug)
 EOF
 
   -(debug)
 EOF
 
-mhparam -help >$actual 2>&1
-check $expected $actual
+#### Skip nmh intro text.
+mhparam -help | sed '/^$/,$d' >"$actual" 2>&1
+check "$expected" "$actual"
 
 # check -version
 
 # check -version
+start_test "-version"
 case `mhparam -v` in
   mhparam\ --*) ;;
   *           ) echo "$0: mhparam -v generated unexpected output" 1>&2
 case `mhparam -v` in
   mhparam\ --*) ;;
   *           ) echo "$0: mhparam -v generated unexpected output" 1>&2
@@ -44,36 +50,44 @@ case `mhparam -v` in
 esac
 
 # check unknown option
 esac
 
 # check unknown option
+start_test "unknown option"
 run_test 'mhparam -nonexistent' 'mhparam: -nonexistent unknown'
 
 # check -all
 run_test 'mhparam -nonexistent' 'mhparam: -nonexistent unknown'
 
 # check -all
+start_test "-all"
 cp "$MH" $expected
 cp "$MH" $expected
-# -all adds current folder
+# -all adds current folder and Version
 echo 'Current-Folder: '`folder -f` >>$expected
 echo 'Current-Folder: '`folder -f` >>$expected
+echo "Version: nmh-$MH_VERSION" >>$expected
 run_prog mhparam -all >$actual
 check $expected $actual 'keep first'
 
 # check -all with a component
 run_prog mhparam -all >$actual
 check $expected $actual 'keep first'
 
 # check -all with a component
+start_test "-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: 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
+start_test "-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
 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
+start_test "one component"
 run_test 'mhparam path' "$MH_TEST_DIR/Mail"
 
 # check more than one component, which enables -component
 run_test 'mhparam path' "$MH_TEST_DIR/Mail"
 
 # check more than one component, which enables -component
+start_test "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
 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
+start_test "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
 # 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
@@ -84,19 +98,19 @@ $MH_INST_DIR$bindir/refile
 700
 $bindir/inc
 more
 700
 $bindir/inc
 more
-$bindir/mhmail
+$MH_INST_DIR$bindir/mhmail
 $MH_INST_DIR$nmhlibexecdir/mhl
 cat
 600
 $bindir/packf
 $MH_INST_DIR$nmhlibexecdir/post
 $MH_INST_DIR$nmhlibexecdir/mhl
 cat
 600
 $bindir/packf
 $MH_INST_DIR$nmhlibexecdir/post
-$bindir/send
-$bindir/mhshow
+$MH_INST_DIR$bindir/send
+$MH_INST_DIR$bindir/mhshow
 $MH_INST_DIR$nmhlibexecdir/mhl
 $MH_INST_DIR$nmhlibexecdir/mhl
-nmh-`cat ${srcdir}/VERSION`
-$bindir/whatnow
-$bindir/whom
-$nmhetcdir
+nmh-$MH_VERSION
+$MH_INST_DIR$bindir/whatnow
+$MH_INST_DIR$bindir/whom
+$nmhetcdirinst
 $MH_LIBEXEC_DIR
 fcntl
 ${default_locking}
 $MH_LIBEXEC_DIR
 fcntl
 ${default_locking}
@@ -140,33 +154,57 @@ case `mhparam sbackup` in
 esac
 
 # check -component
 esac
 
 # check -component
+start_test "-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"
 
 # check -component, note that component name of argument is echoed exactly
+start_test "-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 path' "path: $MH_TEST_DIR/Mail"
 run_test 'mhparam -component PATH' "PATH: $MH_TEST_DIR/Mail"
 
 # check -nocomponent
+start_test "-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 -component -nocomponent path' "$MH_TEST_DIR/Mail"
 run_test 'mhparam -nocomponent path AliasFile' "$MH_TEST_DIR/Mail
 aliases"
 
 # check nonexistent component
+start_test "nonexistent component"
 run_test 'mhparam nonexistent' ''
 
 # check that return status counts nonexistent components
 run_test 'mhparam nonexistent' ''
 
 # check that return status counts nonexistent components
+start_test "return status counts nonexistent components"
 set +e
 mhparam path context nonexistent1 nonexistent2 nonexistent3 >/dev/null
 run_test "echo $?" 3
 set -e
 
 set +e
 mhparam path context nonexistent1 nonexistent2 nonexistent3 >/dev/null
 run_test "echo $?" 3
 set -e
 
+# And clips their numbers to avoid a misleading exit value.
+start_test "clips their numbers to avoid a misleading exit value"
+while read use want; do
+    r=0
+    #### Heirloom shell can't handle the backquote expression as the
+    #### argument:   with set -e, it exits immediately.
+    textlines=`yes nonexistent | sed ${use}q`
+    mhparam $textlines || r=$?
+    run_test "echo $r" $want
+done <<\E
+119 119
+120 120
+121 120
+E
+
 # mhparam -debug
 # mhparam -debug
+start_test "-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
 # 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
+start_test "with text file that does not end with newline"
 printf 'Editor: emacs' >>"$MH"
 run_test 'mhparam -nocomponent editor' 'emacs'
 
 printf 'Editor: emacs' >>"$MH"
 run_test 'mhparam -nocomponent editor' 'emacs'
 
+
+finish_test
 exit $failed
 exit $failed