Skip to content

Commit

Permalink
Flymake: unbreak tests
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
joaotavora committed Sep 24, 2023
1 parent 9b933a6 commit 81c6569
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 3 deletions.
2 changes: 0 additions & 2 deletions lisp/progmodes/flymake.el
Original file line number Diff line number Diff line change
Expand Up @@ -1977,6 +1977,4 @@ some of this variable's contents the diagnostic listings.")

(provide 'flymake)

(require 'flymake-proc)

;;; flymake.el ends here
3 changes: 2 additions & 1 deletion test/lisp/progmodes/flymake-tests.el
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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."
Expand Down

0 comments on commit 81c6569

Please sign in to comment.