Because of the way emacs reports errors, a test form can crash and not
change the main buffer. To work around this, capture both signalled
errors and any other messages.
---
test/test-lib.el | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/test/test-lib.el b/test/test-lib.el
index 32d53736..e12034c3 100644
--- a/test/test-lib.el
+++ b/test/test-lib.el
@@ -159,6 +159,18 @@ running, quit if it terminated."
(lambda (x) `(prog1 ,x (notmuch-post-command)))
body)))
+;; Log any signalled error (and other messages) to MESSAGES
+;; Log "COMPLETE" if forms complete without error.
+(defmacro test-log-error (&rest body)
+ `(progn
+ (with-current-buffer "*Messages*"
+ (let ((inhibit-read-only t)) (erase-buffer)))
+ (condition-case err
+ (progn ,@body
+ (message "COMPLETE"))
+ (t (message "%s" err)))
+ (with-current-buffer "*Messages*" (test-output "MESSAGES"))))
+
;; For historical reasons, we hide deleted tags by default in the test
;; suite
(setq notmuch-tag-deleted-formats
--
2.33.0
_______________________________________________
notmuch mailing list -- [email protected]
To unsubscribe send an email to [email protected]