X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/c53b25002f9879979983d4a763e8e658f2da40c9..ffb6bd901c145c846c7712a723e582668c98c846:/test/mhparam/test-mhparam diff --git a/test/mhparam/test-mhparam b/test/mhparam/test-mhparam index 629a3f2f..e2b97190 100755 --- a/test/mhparam/test-mhparam +++ b/test/mhparam/test-mhparam @@ -16,6 +16,9 @@ fi 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 @@ -23,6 +26,7 @@ actual_err=$MH_TEST_DIR/$$.actual_err # check -help +start_test "-help" cat >$expected <$actual 2>&1 -check $expected $actual + +#### Skip nmh intro text. +mhparam -help | sed '/^$/,$d' >"$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 +start_test "-version" +case `mhparam -v` in + mhparam\ --*) ;; + * ) echo "$0: mhparam -v generated unexpected output" 1>&2 + failed=`expr ${failed:-0} + 1`;; +esac # check unknown option +start_test "unknown option" run_test 'mhparam -nonexistent' 'mhparam: -nonexistent unknown' # check -all -cp $MH_TEST_DIR/Mail/.mh_profile $expected -# -all adds current folder +start_test "-all" +cp "$MH" $expected +# -all adds current folder and Version echo 'Current-Folder: '`folder -f` >>$expected -mhparam -all >$actual +echo "Version: nmh-$MH_VERSION" >>$expected +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 -mhparam -all path >$actual 2>$actual_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 -mhparam -all -components >$actual 2>$actual_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 -echo 'AliasFile: aliases' >>"$MH_TEST_DIR/Mail/.mh_profile" +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 -run_test 'mhparam -nocomponent context' 'context' -run_test 'mhparam -nocomponent mh-sequences' '.mh_sequences' -run_test 'mhparam -nocomponent buildmimeproc' "$prefix/bin/mhbuild" -run_test 'mhparam -nocomponent faceproc' '' -run_test 'mhparam -nocomponent fileproc' "$MH_INST_DIR$prefix/bin/refile" -run_test 'mhparam -nocomponent foldprot' '700' -run_test 'mhparam -nocomponent formatproc' '' -run_test 'mhparam -nocomponent incproc' "$prefix/bin/inc" -run_test 'mhparam -nocomponent installproc' "$prefix/lib/install-mh" -run_test 'mhparam -nocomponent lproc' 'less' -run_test 'mhparam -nocomponent mailproc' "$prefix/bin/mhmail" -run_test 'mhparam -nocomponent mhlproc' "$MH_INST_DIR$prefix/lib/mhl" -run_test 'mhparam -nocomponent moreproc' 'less' -run_test 'mhparam -nocomponent msgprot' '600' -run_test 'mhparam -nocomponent mshproc' "$prefix/bin/msh" -run_test 'mhparam -nocomponent packproc' "$prefix/bin/packf" -run_test 'mhparam -nocomponent postproc' "$MH_INST_DIR$prefix/lib/post" -run_test 'mhparam -nocomponent rmmproc' '' -run_test 'mhparam -nocomponent sendproc' "$prefix/bin/send" -run_test 'mhparam -nocomponent showmimeproc' "$prefix/bin/mhshow" -run_test 'mhparam -nocomponent showproc' "$MH_INST_DIR$prefix/lib/mhl" -run_test 'mhparam -nocomponent version' 'nmh-'`cat $MH_OBJ_DIR/VERSION` -run_test 'mhparam -nocomponent vmhproc' "$prefix/bin/msh" -run_test 'mhparam -nocomponent whatnowproc' "$prefix/bin/whatnow" -run_test 'mhparam -nocomponent whomproc' "$prefix/bin/whom" -run_test 'mhparam -nocomponent etcdir' "$prefix/etc" -run_test 'mhparam -nocomponent libdir' "$prefix/lib" -run_test 'mhparam -nocomponent sbackup' ',' +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 <$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 +start_test "-component" 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 +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 +start_test "nonexistent component" 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 -# mhparam -debug (undocumented) +# 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 +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 +start_test "with text file that does not end with newline" +printf 'Editor: emacs' >>"$MH" +run_test 'mhparam -nocomponent editor' 'emacs' + + +finish_test exit $failed