From a09921bdfb47ff15f32bcea9f24e8399b1b8db36 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Fri, 5 Nov 2010 14:20:52 -0700 Subject: [PATCH] test: Generate a little run_emacs script to help debug any failures. After any emacs test failure, the tmp.emacs directory will have this run_emacs script in it which the user can use to run emacs within the test suite environment, (pointing at the test suite's notmuch database, using the local notmuch command-line program, and the local notmuch emacs lisp code). --- test/test-lib.sh | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/test/test-lib.sh b/test/test-lib.sh index 8f39aa78..168123a2 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -742,12 +742,29 @@ test_done () { } test_emacs () { - emacs_code="$1" - emacs --batch --no-site-file --directory ../../emacs --load notmuch.el \ + # Construct a little test script here for the benefit of the user, + # (who can easily run "run_emacs" to get the same emacs environment + # for investigating any failures). + cat < run_emacs +#!/bin/sh +export PATH=$PATH +export HOME=$HOME +export NOTMUCH_CONFIG=$NOTMUCH_CONFIG + +# We assume that the user will give a command-line argument only if +# wanting to run in batch mode. +if [ \$# -gt 0 ]; then + BATCH=--batch +fi + +emacs \$BATCH --no-site-file --directory ../../emacs --load notmuch.el \ --eval "(defun notmuch-test-wait () (while (get-buffer-process (current-buffer)) (sleep-for 0.1)))" \ - --eval "(progn (set-frame-width (window-frame (get-buffer-window)) 80) ${emacs_code})" + --eval "(progn (set-frame-width (window-frame (get-buffer-window)) 80) \$@)" +EOF + chmod a+x ./run_emacs + ./run_emacs "$@" }