Flymake: unbreak tests

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.
This commit is contained in:
João Távora 2023-09-23 21:54:50 +01:00
parent 9b933a6033
commit 81c6569e65
2 changed files with 2 additions and 3 deletions

View file

@ -1977,6 +1977,4 @@ some of this variable's contents the diagnostic listings.")
(provide 'flymake)
(require 'flymake-proc)
;;; flymake.el ends here

View 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."