test: emacs: run list-processes after accept-process-output in emacs 23.1
authorTomi Ollila <tomi.ollila@iki.fi>
Sun, 5 Aug 2012 11:13:02 +0000 (14:13 +0300)
committerDavid Bremner <bremner@debian.org>
Wed, 29 Aug 2012 22:06:18 +0000 (19:06 -0300)
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.

test/test-lib.el

index 52d993617ff0d910e9abcb5d60564e5bc8dc602a..fa3380cf18918eb4e15d28ff1e83faf9541cd364 100644 (file)
     "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))