test: set EMACS_SERVER variable only after dtach(1) was successfully started
authorDmitry Kurochkin <dmitry.kurochkin@gmail.com>
Thu, 17 Nov 2011 13:05:55 +0000 (17:05 +0400)
committerDavid Bremner <bremner@debian.org>
Sun, 27 Nov 2011 16:13:07 +0000 (08:13 -0800)
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.

test/test-lib.sh

index 0735b5c903f10bd325bdd7578fd27a2400a2ff4b..20fa195e49f8563f0c6343a6da75c58f6994021e 100644 (file)
@@ -845,16 +845,17 @@ EOF
 
 test_emacs () {
        if [ -z "$EMACS_SERVER" ]; then
-               EMACS_SERVER="notmuch-test-suite-$$"
+               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 "$TEST_TMPDIR/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 '(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