From 3c053bf81cf75ab37b906e748ea1edcf8af4b178 Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Sun, 5 Aug 2012 14:13:02 +0300 Subject: [PATCH] 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. --- test/test-lib.el | 10 ++++++++++ 1 file changed, 10 insertions(+) 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))