[PATCH 2/2] test: emacs: run list-processes after accept-process-output in emacs 23.1
Austin Clements
amdragon at MIT.EDU
Mon Aug 13 08:16:13 PDT 2012
Quoth Tomi Ollila on Aug 05 at 2:13 pm:
> 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.
Should this workaround perhaps go in notmuch-test-wait directly,
instead of being implemented as advice? If we do want to keep it as
advice, should it go in notmuch-lib.el along with the few other
compatibility functions?
> ---
>
> Thanks to Austin for the comments and IRC discussions on the matter.
>
> test/test-lib.el | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/test/test-lib.el b/test/test-lib.el
> index 52d9936..4330352 100644
> --- a/test/test-lib.el
> +++ b/test/test-lib.el
> @@ -35,6 +35,16 @@
> "Disable yes-or-no-p before executing kill-emacs"
> (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 ()
> "Wait for process completion."
> (while (get-buffer-process (current-buffer))
More information about the notmuch
mailing list