--- /dev/null
+Return-Path: <dmitry.kurochkin@gmail.com>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by olra.theworths.org (Postfix) with ESMTP id 5B815429E44\r
+ for <notmuch@notmuchmail.org>; Thu, 17 Nov 2011 05:07:17 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.799\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5\r
+ tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,\r
+ FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+ by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id GOVcbohdzurr for <notmuch@notmuchmail.org>;\r
+ Thu, 17 Nov 2011 05:07:15 -0800 (PST)\r
+Received: from mail-bw0-f53.google.com (mail-bw0-f53.google.com\r
+ [209.85.214.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
+ (No client certificate requested)\r
+ by olra.theworths.org (Postfix) with ESMTPS id 310A2429E3B\r
+ for <notmuch@notmuchmail.org>; Thu, 17 Nov 2011 05:06:45 -0800 (PST)\r
+Received: by mail-bw0-f53.google.com with SMTP id q10so2108290bka.26\r
+ for <notmuch@notmuchmail.org>; Thu, 17 Nov 2011 05:06:44 -0800 (PST)\r
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;\r
+ h=from:to:subject:date:message-id:x-mailer:in-reply-to:references;\r
+ bh=/ks8RgAr1eNNIN4DfTJmWgMhZBvP/UnNg2d4q+JdyH8=;\r
+ b=bLBKMVKh0wJ7jUW95ODZxMTbPycyH9oNbM8Bbabtx78ou08xIf2J83UpT2fOqZDAh4\r
+ BSpLUoxGdNg9MBoiov8aYU3xWfRLl9I7n3AnDQ1DpfY/ucAoSjZfx0gEe697HLo1hwie\r
+ gCiXPO2E7KNyzFqQOsLuzIyHY3tPPJd7yNTIM=\r
+Received: by 10.204.136.211 with SMTP id s19mr26766826bkt.28.1321535204902;\r
+ Thu, 17 Nov 2011 05:06:44 -0800 (PST)\r
+Received: from localhost ([91.144.186.21])\r
+ by mx.google.com with ESMTPS id e18sm20413744bkr.15.2011.11.17.05.06.43\r
+ (version=TLSv1/SSLv3 cipher=OTHER);\r
+ Thu, 17 Nov 2011 05:06:44 -0800 (PST)\r
+From: Dmitry Kurochkin <dmitry.kurochkin@gmail.com>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH v2 09/10] test: check if emacs is available in the beginning\r
+ of test_emacs\r
+Date: Thu, 17 Nov 2011 17:06:02 +0400\r
+Message-Id: <1321535163-4895-10-git-send-email-dmitry.kurochkin@gmail.com>\r
+X-Mailer: git-send-email 1.7.7.2\r
+In-Reply-To: <1321535163-4895-1-git-send-email-dmitry.kurochkin@gmail.com>\r
+References: <1321535163-4895-1-git-send-email-dmitry.kurochkin@gmail.com>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Thu, 17 Nov 2011 13:07:18 -0000\r
+\r
+Unfortunately, this is needed to avoid the emacs waiting loop.\r
+---\r
+ test/test-lib.sh | 4 ++++\r
+ 1 files changed, 4 insertions(+), 0 deletions(-)\r
+\r
+diff --git a/test/test-lib.sh b/test/test-lib.sh\r
+index 5a99216..21e3162 100755\r
+--- a/test/test-lib.sh\r
++++ b/test/test-lib.sh\r
+@@ -872,40 +872,44 @@ export NOTMUCH_CONFIG=$NOTMUCH_CONFIG\r
+ \r
+ # Here's what we are using here:\r
+ #\r
+ # --no-init-file Don't load users ~/.emacs\r
+ #\r
+ # --no-site-file Don't load the site-wide startup stuff\r
+ #\r
+ # --directory Ensure that the local elisp sources are found\r
+ #\r
+ # --load Force loading of notmuch.el and test-lib.el\r
+ \r
+ exec emacs --no-init-file --no-site-file \\r
+ --directory "$TEST_DIRECTORY/../emacs" --load notmuch.el \\r
+ --directory "$TEST_DIRECTORY" --load test-lib.el \\r
+ "\$@"\r
+ EOF\r
+ chmod a+x "$TMP_DIRECTORY/run_emacs"\r
+ }\r
+ \r
+ test_emacs () {\r
++ # test dependencies beforehand to avoid the waiting loop below\r
++ test_require_external_prereq emacs || return\r
++ test_require_external_prereq emacsclient || return\r
++\r
+ if [ -z "$EMACS_SERVER" ]; then\r
+ server_name="notmuch-test-suite-$$"\r
+ # start a detached session with an emacs server\r
+ # user's TERM is given to dtach which assumes a minimally\r
+ # VT100-compatible terminal -- and emacs inherits that\r
+ TERM=$ORIGINAL_TERM dtach -n "$TMP_DIRECTORY/emacs-dtach-socket.$$" \\r
+ sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \\r
+ --no-window-system \\r
+ --eval '(setq server-name \"$server_name\")' \\r
+ --eval '(server-start)' \\r
+ --eval '(orphan-watchdog $$)'" || return\r
+ EMACS_SERVER="$server_name"\r
+ # wait until the emacs server is up\r
+ until test_emacs '()' 2>/dev/null; do\r
+ sleep 1\r
+ done\r
+ fi\r
+ \r
+ emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"\r
+ }\r
+-- \r
+1.7.7.2\r
+\r