]> git.eshelyaron.com Git - emacs.git/commitdiff
Flymake: unbreak tests
authorJoão Távora <joaotavora@gmail.com>
Sat, 23 Sep 2023 20:54:50 +0000 (21:54 +0100)
committerJoão Távora <joaotavora@gmail.com>
Sun, 24 Sep 2023 08:07:27 +0000 (09:07 +0100)
Flymake's normal behaviour implies catching the errors of misbehaving
backends.  This behavior is tested by Flymake's automated tests, built
on top of ERT, which means that debug-on-error is always t in the
bodies of said tests (I don't know the rationale for this, but it's
been like this for some time)

Flymake used to shun usage of 'condition-case-unless-debug' because of
this.  But since that macro is pretty useful, I started using it
again, and as a consequence, tests started breaking.

The solution is to:

1. stop requiring the deprecated legacy backend 'flymake-proc' (which
by design, always errors, except in rare circumstances).

2. deliberately set debug-on-error to nil around the "dummy backends""
test.

* lisp/progmodes/flymake.el (flymake-proc): Don't require it by
default.

* test/lisp/progmodes/flymake-tests.el:
(dummy-backends): Make robust to ert's debug-on-error setting.

lisp/progmodes/flymake.el
test/lisp/progmodes/flymake-tests.el

index 6fabea3bda8eba709acd8c8793207ed36a1664f8..b27e6527f81f3447d41422617a8a48a8c3c83fe2 100644 (file)
@@ -1977,6 +1977,4 @@ some of this variable's contents the diagnostic listings.")
 
 (provide 'flymake)
 
-(require 'flymake-proc)
-
 ;;; flymake.el ends here
index f6608dffca20ab48d623f678c1e7a2931fb99f91..c3ef4827ef27d51c94c5786cb05d74d911ca40f3 100644 (file)
@@ -213,6 +213,7 @@ SEVERITY-PREDICATE is used to setup
 
 (ert-deftest dummy-backends ()
   "Test many different kinds of backends."
+  (let ((debug-on-error nil))
   (with-temp-buffer
     (cl-letf
         (((symbol-function 'error-backend)
@@ -291,7 +292,7 @@ SEVERITY-PREDICATE is used to setup
         (should (eq 'flymake-warning (face-at-point))) ; dolor
         (flymake-goto-next-error)
         (should (eq 'flymake-error (face-at-point))) ; prognata
-        (should-error (flymake-goto-next-error nil nil t))))))
+        (should-error (flymake-goto-next-error nil nil t)))))))
 
 (ert-deftest recurrent-backend ()
   "Test a backend that calls REPORT-FN multiple times."