tr '\015' Q | sed -e 's/Q$//'
}
-# Notmuch helper functions
-increment_mtime_amount=0
-increment_mtime ()
-{
- dir="$1"
-
- increment_mtime_amount=$((increment_mtime_amount + 1))
- touch -d "+${increment_mtime_amount} seconds" "$dir"
-}
-
# Generate a new message in the mail directory, with a unique message
# ID and subject. The message is not added to the index.
#
${additional_headers}
${template[body]}
EOF
-
- # Ensure that the mtime of the containing directory is updated
- increment_mtime "$(dirname "${gen_msg_filename}")"
}
# Generate a new message and add it to the database.
echo
+ [ -n "$EMACS_SERVER" ] && test_emacs '(kill-emacs)'
+
if [ "$test_failure" = "0" ]; then
if [ "$test_broken" = "0" ]; then
rm -rf "$remove_tmp"
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
#
# --load Force loading of notmuch.el and test-lib.el
-emacs \$BATCH --no-init-file --no-site-file \
+emacs --no-init-file --no-site-file \
--directory "$TEST_DIRECTORY/../emacs" --load notmuch.el \
--directory "$TEST_DIRECTORY" --load test-lib.el \
- --eval "(progn \$@)"
+ "\$@"
EOF
chmod a+x "$TMP_DIRECTORY/run_emacs"
}
test_emacs () {
- "$TMP_DIRECTORY/run_emacs" "$@"
+ if [ -z "$EMACS_SERVER" ]; then
+ EMACS_SERVER="notmuch-test-suite-$$"
+ "$TMP_DIRECTORY/run_emacs" \
+ --daemon \
+ --eval "(setq server-name \"$EMACS_SERVER\")" \
+ --eval "(orphan-watchdog $$)" || return
+ fi
+
+ emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"
}