Unfortunately, this is needed to avoid the emacs waiting loop.
---
 test/test-lib.sh |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/test/test-lib.sh b/test/test-lib.sh
index 840c86c..5bd5bd6 100755
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -858,40 +858,44 @@ export NOTMUCH_CONFIG=$NOTMUCH_CONFIG

 # Here's what we are using here:
 #
 # --no-init-file       Don't load users ~/.emacs
 #
 # --no-site-file       Don't load the site-wide startup stuff
 #
 # --directory          Ensure that the local elisp sources are found
 #
 # --load               Force loading of notmuch.el and test-lib.el

 exec emacs --no-init-file --no-site-file \
        --directory "$TEST_DIRECTORY/../emacs" --load notmuch.el \
        --directory "$TEST_DIRECTORY" --load test-lib.el \
        "\$@"
 EOF
        chmod a+x "$TMP_DIRECTORY/run_emacs"
 }

 test_emacs () {
+       # test dependencies beforehand to avoid the waiting loop below
+       which emacs >/dev/null || emacs || return
+       which emacsclient >/dev/null || emacsclient || return
+
        if [ -z "$EMACS_SERVER" ]; then
                server_name="notmuch-test-suite-$$"
                # 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 \"$server_name\")' \
                                --eval '(server-start)' \
                                --eval '(orphan-watchdog $$)'" || return
                EMACS_SERVER="$server_name"
                # wait until the emacs server is up
                until test_emacs '()' 2>/dev/null; do
                        sleep 1
                done
        fi

        emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"
 }
-- 
1.7.7.2

Reply via email to