setup_test
+check_exit '-eq 1' prompter -
+
expected=$MH_TEST_DIR/$$.expected
expected_err=$MH_TEST_DIR/$$.expected_err
actual=$MH_TEST_DIR/$$.actual
# check -help
+start_test "-help"
cat >$expected <<EOF
Usage: prompter [switches] file
switches are:
-help
EOF
-prompter -help >$actual 2>&1
-check $expected $actual
+#### Skip nmh intro text.
+run_prog prompter -help 2>&1 | sed '/^$/,$d' >"$actual"
+check "$expected" "$actual"
# check -version
+start_test "-version"
case `prompter -v` in
prompter\ --*) ;;
* ) printf '%s: prompter -v generated unexpected output\n' "$0" >&2
esac
# check unknown switch
+start_test "unknown switch"
run_test 'prompter -nonexistent' 'prompter: -nonexistent unknown'
# check with no switches
+start_test "with no switches"
run_test 'prompter' 'prompter: usage: prompter [switches] file'
# check with file
+start_test "with file"
cat >$expected <<EOF
Resent-From: sender@example.com
Resent-To: recipient@example.com
EOF
printf 'recipient@example.com\ncc@example.com\n+outbox\nmessage body\n' | \
- prompter $MH_TEST_DIR/prompter-file > /dev/null
+ run_prog prompter $MH_TEST_DIR/prompter-file >/dev/null
check "$expected" "$MH_TEST_DIR/prompter-file" 'keep first'
# check -doteof
+start_test "-doteof"
cat >$MH_TEST_DIR/prompter-file <<EOF
Resent-From: sender@example.com
Resent-To:
EOF
printf 'recipient@example.com\ncc@example.com\n+outbox\nmessage body\n.\n' | \
- prompter -doteof $MH_TEST_DIR/prompter-file > /dev/null
+ run_prog prompter -doteof $MH_TEST_DIR/prompter-file >/dev/null
check "$expected" "$MH_TEST_DIR/prompter-file" 'keep first'
# check -nodoteof
+start_test "-nodoteof"
cat >$MH_TEST_DIR/prompter-file <<EOF
Resent-From: sender@example.com
Resent-To:
EOF
printf 'recipient@example.com\ncc@example.com\n+outbox\nmessage body\n' | \
- prompter -doteof -nodoteof $MH_TEST_DIR/prompter-file > /dev/null
+ run_prog prompter -doteof -nodoteof $MH_TEST_DIR/prompter-file >/dev/null
check "$expected" "$MH_TEST_DIR/prompter-file" 'keep first'
# check -noprepend
+start_test "-noprepend"
cat >$MH_TEST_DIR/prompter-file <<EOF
Resent-From: sender@example.com
Resent-To:
message body
EOF
-printf 'appendage\n' >> "$expected"
+printf 'appendage\n' >>"$expected"
printf 'recipient@example.com\ncc@example.com\n+outbox\nappendage\n' | \
- prompter -noprepend $MH_TEST_DIR/prompter-file > /dev/null
+ run_prog prompter -noprepend $MH_TEST_DIR/prompter-file >/dev/null
check "$expected" "$MH_TEST_DIR/prompter-file"
# check -prepend
+start_test "-prepend"
cat >$MH_TEST_DIR/prompter-file <<EOF
Resent-From: sender@example.com
Resent-To:
EOF
printf 'recipient@example.com\ncc@example.com\n+outbox\nprependage\n' | \
- prompter -noprepend -prepend $MH_TEST_DIR/prompter-file > /dev/null
+ run_prog prompter -noprepend -prepend $MH_TEST_DIR/prompter-file >/dev/null
check "$MH_TEST_DIR/prompter-file" "$expected" 'keep first'
# check -rapid
+start_test "-rapid"
cat >$expected <<EOF
Resent-From: sender@example.com
Resent-To: recipient@example.com
--------
EOF
-prompter -rapid $MH_TEST_DIR/prompter-file > "$actual" < /dev/null
+run_prog prompter -rapid $MH_TEST_DIR/prompter-file >"$actual" </dev/null
check "$expected" "$actual"
# check -norapid
+start_test "-norapid"
cat >$expected <<EOF
Resent-From: sender@example.com
Resent-To: recipient@example.com
--------
EOF
-prompter -rapid -norapid $MH_TEST_DIR/prompter-file > "$actual" < /dev/null
+run_prog prompter -rapid -norapid $MH_TEST_DIR/prompter-file \
+ >"$actual" </dev/null
check "$expected" "$actual"
# check -erase and -kill. We can't test their effects because they
+start_test "-erase and -kill. We can't test their effects because they"
# only affect the terminal and this test execution might not be
# connected to one. So we can just check that the respective options
# were set.
EOF
printf 'woot woot\n' | \
- prompter -erase '\15' -kill '\7f' $MH_TEST_DIR/prompter-file > "$actual"
+ run_prog prompter -erase '\15' -kill '\7f' $MH_TEST_DIR/prompter-file >"$actual"
check "$expected" "$actual"
# check -body. It's undocumented but the default, so make sure that
+start_test "-body. It's undocumented but the default, so make sure that"
# it reverses the effect of -nobody.
cat >$expected <<EOF
Resent-From: sender@example.com
--------
EOF
-prompter -nobody -body $MH_TEST_DIR/prompter-file > "$actual" < /dev/null
+run_prog prompter -nobody -body $MH_TEST_DIR/prompter-file >"$actual" \
+ </dev/null
check "$expected" "$actual"
# check -nobody. It's undocumented but looks like it removes the body.
+start_test "-nobody. It's undocumented but looks like it removes the body."
cat >$expected <<EOF
Resent-From: sender@example.com
Resent-To: recipient@example.com
Resent-fcc: +outbox
EOF
-prompter -nobody $MH_TEST_DIR/prompter-file > /dev/null
+run_prog prompter -nobody $MH_TEST_DIR/prompter-file >/dev/null
check "$expected" "$MH_TEST_DIR/prompter-file"
+finish_test
exit ${failed:-0}