X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Ftest-lib.sh;h=418eaa7f6404097f0ba31a0a3a4fe8f9a66d7f6d;hb=42f1a13374bdb75c51132ff2b07c8e192291f8d7;hp=8f39aa78f3a7ce7a290f71287e434f5ce79481b8;hpb=20018a0c094f576589ea82d5ca5116dfd3c0ea55;p=notmuch diff --git a/test/test-lib.sh b/test/test-lib.sh index 8f39aa78..418eaa7f 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -245,6 +245,12 @@ increment_mtime () # Generate the message in directory 'directory/of/choice' within # the mail store. The directory will be created if necessary. # +# [filename]=name +# +# Store the message in file 'name'. The default is to store it +# in 'msg-', where is three-digit number of the +# message. +# # [body]=text # # Text to use as the body of the email message @@ -281,10 +287,14 @@ generate_message () local additional_headers gen_msg_cnt=$((gen_msg_cnt + 1)) - gen_msg_name=msg-$(printf "%03d" $gen_msg_cnt) + if [ -z "${template[filename]}" ]; then + gen_msg_name="msg-$(printf "%03d" $gen_msg_cnt)" + else + gen_msg_name=${template[filename]} + fi if [ -z "${template[id]}" ]; then - gen_msg_id="${gen_msg_name}@notmuch-test-suite" + gen_msg_id="${gen_msg_name%:2,*}@notmuch-test-suite" else gen_msg_id="${template[id]}" fi @@ -742,12 +752,48 @@ 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 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 + +# Here's what we are using here: +# +# --batch: Quit after given commands and print all (messages) +# +# --no-init-file Don't load users ~/.emacs +# +# --no-site-file Don't load the site-wide startup stuff +# +# --directory Ensure that the local notmuch.el source is found +# +# --load Force loading of notmuch.el +# +# notmuch-test-wait Function for tests to use to wait for process completion +# +# message-signature Avoiding appending user's signature on messages +# +# set-frame-width 80 columns (avoids crazy 10-column default of --batch) + +emacs \$BATCH --no-init-file --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 "(setq message-signature nil)" \ + --eval "(progn (set-frame-width (window-frame (get-buffer-window)) 80) \$@)" +EOF + chmod a+x ./run_emacs + ./run_emacs "$@" } @@ -852,8 +898,7 @@ rm -fr "$test" || { } MAIL_DIR="${TMP_DIRECTORY}/mail" -export HOME="${TMP_DIRECTORY}" -export NOTMUCH_CONFIG="${HOME}/notmuch-config" +export NOTMUCH_CONFIG="${TMP_DIRECTORY}/notmuch-config" mkdir -p "${test}" mkdir -p "${MAIL_DIR}" @@ -874,7 +919,6 @@ EOF cd -P "$test" || error "Cannot setup test environment" this_test=${0##*/} -this_test=${this_test%%-*} for skp in $NOTMUCH_SKIP_TESTS do to_skip=