From: Tomi Ollila Date: Sun, 5 Aug 2012 11:13:02 +0000 (+0300) Subject: test: emacs: run list-processes after accept-process-output in emacs 23.1 X-Git-Tag: 0.15_rc1~262 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3c053bf81cf75ab37b906e748ea1edcf8af4b178;p=notmuch.git 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. --- diff --git a/test/test-lib.el b/test/test-lib.el index 52d99361..fa3380cf 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))