#
######################################################
-set -x # ???? debug on buildbot
set -e
if test -z "${MH_OBJ_DIR}"; then
setup_test
require_prog script
-#### FreeBSD script, e.g., doesn't use -c to identify a command to run.
-if script -c 'echo OK' /dev/null 2>&1 | egrep 'OK' >/dev/null; then
- script_command_opt='-c'
+if script -S /bin/sh 'echo OK' /dev/null 2>&1 | egrep 'OK' >/dev/null; then
+ #### script(1) uses -S to set the shell that it runs.
+ use_dash_S=1
else
- script_command_opt=''
+ #### Assume that script(1) uses SHELL environment variable.
+ use_dash_S=0
fi
#### Run a command but don't wait for user input. script(1) seems to do
#### what we want by not waiting when run in the background.
run_without_input() {
- if [ "$script_command_opt" = -c ]; then
- #### -c takes single argument with command + arguments.
- script -c "$*" -f -q "$actual" >/dev/null &
+ #### Create a command to use as a shell for script.
+ cat >"${cmd}" <<EOF
+#! /bin/sh
+$*
+EOF
+ chmod +x "${cmd}"
+
+ if [ ${use_dash_S} -eq 1 ]; then
+ script -S "${cmd}" "$actual" >/dev/null &
else
- #### E.g., FreeBSD. Don't combine command arguments.
- script -f -q "$actual" "$@" >/dev/null &
+ SHELL="${cmd}" script "$actual" >/dev/null &
fi
wait $!
actual="$MH_TEST_DIR/test-version-check$$.actual"
context="${MH_TEST_DIR}"/Mail/context
version="Version: nmh-${MH_VERSION}"
+cmd="${MH_TEST_DIR}/Mail/cmd"
# Removing Version will trigger the welcome message. (setup_test
# inserted it so that other tests wouldn't show it.)
start_test 'Welcome: disable in profile skips the welcome message'
cp "${MH}" "${MH}-welcome"
printf 'Welcome: disable\n' >> "${MH}-welcome"
-(MH="${MH}-welcome" run_without_input pick last)
+# Run the function in subshell instead of augmenting the environment
+# for a single command, so that the environment does not retain the
+# MH setting. That can happen when run under distcheck, depending
+# on the user's shell.
+(MH="${MH}-welcome"; run_without_input pick last)
+rm "${MH}-welcome"
grep 'Welcome to nmh version ' "$actual" >/dev/null && false
# Make sure that version wasn't added to context.
grep "^${version}$" "${MH_TEST_DIR}/Mail/context" >/dev/null && false