aboutsummaryrefslogtreecommitdiff
path: root/test/test-lib.sh
diff options
context:
space:
mode:
authorTomi Ollila <tomi.ollila@iki.fi>2011-11-11 23:33:58 +0200
committerDavid Bremner <bremner@debian.org>2011-11-11 18:24:53 -0500
commit2f2ea8a49a9e56a1d7d8cfad8d2d109070b04bf7 (patch)
treee3bbaea72e1409facc1de6ee8dfe6a9424b5034e /test/test-lib.sh
parent0234a16b56e9fa126cf07b9f3634f5b47e3fcfa7 (diff)
test: use dtach(1) instead of screen(1) in emacs tests
dtach is simpler than screen and is not setuid/setgid program so TMPDIR does not get cleared by dynamic loader when executed
Diffstat (limited to 'test/test-lib.sh')
-rwxr-xr-xtest/test-lib.sh19
1 files changed, 10 insertions, 9 deletions
diff --git a/test/test-lib.sh b/test/test-lib.sh
index c81c709..d88548b 100755
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -39,7 +39,7 @@ done,*)
;;
esac
-# Keep the original TERM for say_color
+# Keep the original TERM for say_color and test_emacs
ORIGINAL_TERM=$TERM
# For repeatability, reset the environment to known value.
@@ -50,8 +50,6 @@ TZ=UTC
TERM=dumb
export LANG LC_ALL PAGER TERM TZ
GIT_TEST_CMP=${GIT_TEST_CMP:-diff -u}
-export SCREENRC=/dev/null
-export SYSSCREENRC=/dev/null
# Protect ourselves from common misconfiguration to export
# CDPATH into the environment
@@ -843,12 +841,15 @@ EOF
test_emacs () {
if [ -z "$EMACS_SERVER" ]; then
EMACS_SERVER="notmuch-test-suite-$$"
- # start a detached screen session with an emacs server
- screen -S "$EMACS_SERVER" -d -m "$TMP_DIRECTORY/run_emacs" \
- --no-window-system \
- --eval "(setq server-name \"$EMACS_SERVER\")" \
- --eval '(server-start)' \
- --eval "(orphan-watchdog $$)" || return
+ # start a detached session with an emacs server
+ # user's TERM is given to dtach which assumes a minimally
+ # VT100-compatible terminal -- and emacs inherits that
+ TERM=$ORIGINAL_TERM dtach -n "$TMP_DIRECTORY/emacs-dtach-socket.$$" \
+ sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \
+ --no-window-system \
+ --eval '(setq server-name \"$EMACS_SERVER\")' \
+ --eval '(server-start)' \
+ --eval '(orphan-watchdog $$)'" || return
# wait until the emacs server is up
until test_emacs '()' 2>/dev/null; do
sleep 1