test: emacs: run list-processes after accept-process-output in emacs 23.1

When running emacs tests using emacs 23.1.1 the tests block (until timeout)
when emacs function (notmuch-test-wait) is called.

There is an emacs bug #2930 titled:
23.0.92; `accept-process-output' and `sleep-for' do not run sentinel

It seems this is present in emacs 23.1.

Calling list-processes after accept-process-output seems work around
this problem; in case Emacs version is 23.1 a defadvice is activated
to do just that.
This commit is contained in:
Tomi Ollila 2012-08-05 14:13:02 +03:00 committed by David Bremner
parent f791cc9247
commit 3c053bf81c

View file

@ -35,6 +35,16 @@
"Disable yes-or-no-p before executing kill-emacs" "Disable yes-or-no-p before executing kill-emacs"
(defun yes-or-no-p (prompt) t))) (defun yes-or-no-p (prompt) t)))
;; Emacs bug #2930:
;; 23.0.92; `accept-process-output' and `sleep-for' do not run sentinels
;; seems to be present in Emacs 23.1.
;; Running `list-processes' after `accept-process-output' seems to work
;; around this problem.
(if (and (= emacs-major-version 23) (= emacs-minor-version 1))
(defadvice accept-process-output (after run-list-processes activate)
"run list-processes after executing accept-process-output"
(list-processes)))
(defun notmuch-test-wait () (defun notmuch-test-wait ()
"Wait for process completion." "Wait for process completion."
(while (get-buffer-process (current-buffer)) (while (get-buffer-process (current-buffer))