]> git.notmuchmail.org Git - notmuch/commitdiff
test/emacs: provide macro test-log-error
authorDavid Bremner <david@tethera.net>
Sun, 29 Aug 2021 19:23:27 +0000 (12:23 -0700)
committerDavid Bremner <david@tethera.net>
Sat, 11 Sep 2021 13:10:16 +0000 (10:10 -0300)
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

index c840bc98b0597e781a08dcfa45fe0f428385cdba..6831b46f668b771ed1234e7a3ed618a75adb8876 100644 (file)
@@ -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