test: set EMACS_SERVER variable only after dtach(1) was successfully started

Otherwise, we can set the EMACS_SERVER and return with an error.  And
subsequent calls to test_emacs would assume that emacs server is running.
This commit is contained in:
Dmitry Kurochkin 2011-11-17 17:05:55 +04:00 committed by David Bremner
parent 1660ca5e61
commit 9d5b521472

View file

@ -845,16 +845,17 @@ EOF
test_emacs () { test_emacs () {
if [ -z "$EMACS_SERVER" ]; then if [ -z "$EMACS_SERVER" ]; then
EMACS_SERVER="notmuch-test-suite-$$" server_name="notmuch-test-suite-$$"
# start a detached session with an emacs server # start a detached session with an emacs server
# user's TERM is given to dtach which assumes a minimally # user's TERM is given to dtach which assumes a minimally
# VT100-compatible terminal -- and emacs inherits that # VT100-compatible terminal -- and emacs inherits that
TERM=$ORIGINAL_TERM dtach -n "$TEST_TMPDIR/emacs-dtach-socket.$$" \ TERM=$ORIGINAL_TERM dtach -n "$TEST_TMPDIR/emacs-dtach-socket.$$" \
sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \ sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \
--no-window-system \ --no-window-system \
--eval '(setq server-name \"$EMACS_SERVER\")' \ --eval '(setq server-name \"$server_name\")' \
--eval '(server-start)' \ --eval '(server-start)' \
--eval '(orphan-watchdog $$)'" || return --eval '(orphan-watchdog $$)'" || return
EMACS_SERVER="$server_name"
# wait until the emacs server is up # wait until the emacs server is up
until test_emacs '()' 2>/dev/null; do until test_emacs '()' 2>/dev/null; do
sleep 1 sleep 1