#### Set LC_ALL in individual tests as needed. Unset these so
#### that we don't depend on user's settings in other tests.
unset LANG LC_ALL LC_CTYPE
+# Don't have libcurl(3) use the environment's proxy for tests'
+# connections to 127.0.0.1.
+unset http_proxy ALL_PROXY all_proxy
#### Use a test dir for tmp files when MHTMPDIR applies.
MHTMPDIR="$MH_TEST_DIR"/Mail
sed '/^$/N;/\n$/D'
}
+#### Filter that removes blank lines and leading space that lynx inserts.
+#### but sufficient for our purpose.
+squeeze_whitespace() {
+ sed '/^$/D; s/^ *//;'
+}
+
#### Filter that converts non-breakable space U+00A0 to an ASCII space.
prepare_space() {
sed 's/'"`printf '\\302\\240'`"'/ /g'
fi
}
+#### Run a command but don't wait for user input. We switched from script(1)
+#### to our own utility, runpty. Check that it makes the command look like
+#### it's connected to a terminal below.
+#### The single argument is the name of the file in which to place the output.
+run_without_input() {
+ actual=$1
+ shift
+ runpty="${MH_OBJ_DIR}/test/runpty"
+
+ #### Create a command to use as a shell for script.
+ cmd="${MH_TEST_DIR}/Mail/cmd"
+ cat >"${cmd}" <<EOF
+#! /bin/sh
+$*
+EOF
+ chmod +x "${cmd}"
+
+ "${runpty}" "${actual}" "${cmd}"
+}
+
+#### Ensure that runpty makes the program look like it's connected to a
+#### terminal. The welcome message code in sbr/utils.c needs that.
+require_runpty_to_simulate_tty() {
+ actual="${MH_TEST_DIR}/test-runpty"
+ run_without_input "${actual}" \
+ 'if test -t 0 -a -t 1 -a -t 2; then echo tty; fi'
+ grep tty "${actual}" >/dev/null || test_skip "runpty doesn't simulate tty"
+ rm -f "$actual"
+}
+
#### check_exit() runs the command in $2..., capturing stdout and
#### stderr, and then tests its exit status with the test(1) condition
#### in $1. If that fails, the captured stdout and stderr are
#### cd to $MH_TEST_DIR before trying to remove its Mail
#### subdirectory. rm on Solaris won't remove it if it's in the
#### path of the current working directory.
- test -z "$MH_TEST_NOCLEANUP" && (cd "$MH_TEST_DIR"; rm -rf "$MH_TEST_DIR"/Mail)
+ test -z "$MH_TEST_NOCLEANUP" && (cd "$MH_TEST_DIR" && rm -rf "$MH_TEST_DIR"/Mail)
#### Report test name if set, which indicates failure.
#### Relies on set -e to invoke the trap which calls