It showed up fmtdump wasn't being found because $? was 127, not 1.
And mkstemp exits 255 on error, unusually amongst MH commands.
setup_test
-ali - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' ali - # gcov
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
setup_test
-anno - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' anno - # gcov
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
setup_test
-burst - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' burst - # gcov
#
# Create a test message that we can burst
setup_test
-comp - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' comp - # gcov
#
# Create a test template file (we create one here just in case the master
setup_test
-dist - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' dist - # gcov
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
setup_test
-packf - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' packf - # gcov
expected="$MH_TEST_DIR/$$.expected"
actual="$MH_TEST_DIR/$$.actual"
setup_test
-sortm - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' sortm - # gcov
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual
setup_test
-fmtdump - >/dev/null 2>&1 || true # gcov
-
# Use proper program, likely not the first one on PATH.
fmtdump="${MH_LIBEXEC_DIR}/fmtdump"
+check_exit '-eq 1' "$fmtdump" - # gcov
+
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
actual=$MH_TEST_DIR/$$.actual
setup_test
-msgchk - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' msgchk - # gcov
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
setup_test
-install-mh - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' install-mh - # gcov
# check with no options, with nmh already installed
run_test "install-mh" \
setup_test
-forw - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' forw - # gcov
# Make a draft file forwarding two messages.
mkdraft() {
setup_test
-mhbuild -h >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhbuild -h # gcov
testname="${MH_TEST_DIR}/$$"
backupname="${MH_TEST_DIR}/`mhparam sbackup`$$"
setup_test
-mhfixmsg - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhfixmsg - # gcov
#### Make sure that html-to-text conversion is what we expect.
require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8
setup_test
-mhical - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhical - # gcov
#### Make sure that html-to-text conversion is what we expect.
require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8
setup_test
-mhlist - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhlist - # gcov
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual
setup_test
-mhparam - >/dev/null 2>&1 || true # gcov
-mhparam localmbox >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhparam - # gcov
+check_exit '-eq 0' mhparam localmbox # gcov
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
setup_test
-mhpath - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhpath - # gcov
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual
setup_test
-mhshow - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhshow - # gcov
require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8
setup_test
-mhstore - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhstore - # gcov
expected="$MH_TEST_DIR/test-mhstore$$.expected"
expected2="$MH_TEST_DIR/test-mhstore$$.expected2"
mkstemp="${MH_LIBEXEC_DIR}/mkstemp"
-$mkstemp - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 255' $mkstemp - # gcov
$mkstemp -help | grep suffix >/dev/null && has_mkstemps=1 || has_mkstemps=0
setup_test
-folder - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' folder - # gcov
folders=$MH_TEST_DIR/Mail/.folders
. "${srcdir}/test/oauth/common.sh"
-inc - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' inc - # gcov
setup_pop
. "${srcdir}/test/oauth/common.sh"
-mhlogin - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mhlogin - # gcov
expect_no_creds() {
cat /dev/null > "${MHTMPDIR}/$$.expected-creds"
. "${srcdir}/test/oauth/common.sh"
-send - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' send - # gcov
test_send_only_fakehttp() {
start_fakehttp
. "${srcdir}/test/post/test-post-common.sh"
-"${MH_LIBEXEC_DIR}/post" - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' "$MH_LIBEXEC_DIR/post" - # gcov
#
# Basic test - Simple message, single user, single recipient. Note that
setup_test
-prompter - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' prompter - # gcov
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
# Use proper program, likely not the first one on PATH.
rcvdist="${MH_LIBEXEC_DIR}/rcvdist"
-$rcvdist - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' $rcvdist - # gcov
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual
# Use proper program, likely not the first one on PATH.
rcvpack="${MH_LIBEXEC_DIR}/rcvpack"
-$rcvpack - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' $rcvpack - # gcov
expected="$MH_TEST_DIR/$$.expected"
actual="$MH_TEST_DIR/$$.actual"
# Use proper program, likely not the first one on PATH.
rcvstore="${MH_LIBEXEC_DIR}/rcvstore"
-$rcvstore - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' $rcvstore - # gcov
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
# Use proper program, likely not the first one on PATH.
rcvtty="${MH_LIBEXEC_DIR}/rcvtty"
-$rcvtty - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' $rcvtty - # gcov
expected="$MH_TEST_DIR/$$.expected"
actual="$MH_TEST_DIR/$$.actual"
setup_test
-refile - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' refile - # gcov
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual
setup_test
-repl - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' repl - # gcov
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/Mail/draft
setup_test
-scan - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' scan - # gcov
expected="$MH_TEST_DIR/$$.expected"
actual="$MH_TEST_DIR/$$.actual"
setup_test
-flist - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' flist - # gcov
run_test 'mark 1 3 5 7 9 +inbox -sequence odd' ''
run_test 'mark -s odd -list' 'odd: 1 3 5 7 9'
setup_test
-mark - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' mark - # gcov
# Test sequence creation.
run_test 'mark 1 3 5 7 +inbox -sequence odd' ''
setup_test
-show - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' show - # gcov
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual
# Use proper program, maybe not the first one on PATH.
slocal="$MH_LIBEXEC_DIR"/slocal
-$slocal - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' $slocal - # gcov
expected="$MH_TEST_DIR"/$$.expected
actual="$MH_TEST_DIR"/$$.actual
setup_test
-whom - >/dev/null 2>&1 || true # gcov
+check_exit '-eq 1' whom - # gcov
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual