[PATCH] test: run emacs inside tmux if screen is not available

Thomas Jost schnouki at schnouki.net
Wed Jul 20 05:36:36 PDT 2011


Before this change, the test suite reported many failed tests on machines where
screen is not installed (which is the case of many *BSD systems). This patch
makes the test suite try to use tmux, another terminal multiplexer, if screen is
not available.
---
 test/test-lib.sh |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/test/test-lib.sh b/test/test-lib.sh
index 0608e42..5851b3d 100755
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -860,12 +860,21 @@ EOF
 test_emacs () {
 	if [ -z "$EMACS_SERVER" ]; then
 		EMACS_SERVER="notmuch-test-suite-$$"
-		# start a detached screen session with an emacs server
+		# start a detached screen or tmux 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
+			--eval "(orphan-watchdog $$)"
+		if [ "$?" != 0 ]
+		then
+			tmux -f /dev/null -L "$EMACS_SERVER" new-session -d "$TMP_DIRECTORY/run_emacs \
+				--no-window-system \
+				--eval \"(setq server-name \\\"$EMACS_SERVER\\\")\" \
+				--eval '(server-start)' \
+				--eval \"(orphan-watchdog $$)\"" || return
+		fi
+
 		# wait until the emacs server is up
 		until test_emacs '()' 2>/dev/null; do
 			sleep 1
-- 
1.7.6



More information about the notmuch mailing list