[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