X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Ftest-lib.sh;h=168123a2c267773f6537dca8bb13e3c66da10253;hb=2d4b3e33481baf98a2bf185304d693855dca296a;hp=d9bb2541bdc907c877162628befc51de1ccc091b;hpb=a8aa437bbcd9df6ba739ddd4d0ba402d65847d01;p=notmuch diff --git a/test/test-lib.sh b/test/test-lib.sh index d9bb2541..168123a2 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -15,6 +15,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see http://www.gnu.org/licenses/ . +if [ ${BASH_VERSINFO[0]} -lt 4 ]; then + echo "Error: The notmuch test suite requires a bash version >= 4.0" + echo "due to use of associative arrays within the test suite." + echo "Please try again with a newer bash (or help us fix the" + echo "test suite to be more portable). Thanks." + exit 1 +fi + # if --tee was passed, write the output not only to the terminal, but # additionally to the file test-results/$BASENAME.out, too. case "$GIT_TEST_TEE_STARTED, $* " in @@ -734,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 "$@" } @@ -844,7 +869,8 @@ rm -fr "$test" || { } MAIL_DIR="${TMP_DIRECTORY}/mail" -export NOTMUCH_CONFIG="${TMP_DIRECTORY}/notmuch-config" +export HOME="${TMP_DIRECTORY}" +export NOTMUCH_CONFIG="${HOME}/notmuch-config" mkdir -p "${test}" mkdir -p "${MAIL_DIR}"