aboutsummaryrefslogtreecommitdiff
path: root/test/test-lib.el
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2021-08-29 12:23:27 -0700
committerDavid Bremner <david@tethera.net>2021-09-11 10:10:16 -0300
commit59d0d5a4891469f3c91dcea7448c086cc8434a7a (patch)
tree2e991197611222937a130bfd4423cc3b16db2290 /test/test-lib.el
parent7556bb7da27621895327b84d22abba2519c24ba7 (diff)
test/emacs: provide macro test-log-error
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.
Diffstat (limited to 'test/test-lib.el')
-rw-r--r--test/test-lib.el12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/test-lib.el b/test/test-lib.el
index c840bc98..6831b46f 100644
--- a/test/test-lib.el
+++ b/test/test-lib.el
@@ -174,6 +174,18 @@ running, quit if it terminated."
" "))
tags-to-letters ""))))
+;; 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