diff options
author | Philipp Stephani <phst@google.com> | 2020-12-07 21:41:40 +0100 |
---|---|---|
committer | Philipp Stephani <phst@google.com> | 2020-12-07 21:41:40 +0100 |
commit | 0155bd0fdb166c97a2ce76cc5bc64fd195a676d3 (patch) | |
tree | 0746cc2410658fc03931dfeb942cd8b477965dd4 /lisp/emacs-lisp | |
parent | 0c330bed24ef045732a1bfe61d20ed8328dd0b28 (diff) | |
download | emacs-0155bd0fdb166c97a2ce76cc5bc64fd195a676d3.tar.gz emacs-0155bd0fdb166c97a2ce76cc5bc64fd195a676d3.tar.bz2 emacs-0155bd0fdb166c97a2ce76cc5bc64fd195a676d3.zip |
Fix bug in how ERT invokes its debugger.
The debugger needs to receive a list of the error symbol and data;
cf. the documentation of the `debugger' variable. This bug manifested
itself in ERT forms such as (should (integerp (ert-fail "Boo"))),
which resulted in an incorrect condition object. Note that forms such
as (should (ert-fail "Boo")) weren't affected because they wouldn't
use the `ert--should-signal-hook'.
* test/emacs-lisp/ert.el (ert--should-signal-hook): Call debugger with
the right arguments.
* test/lisp/emacs-lisp/ert-tests.el (ert-test-fail-inside-should): Add
unit test.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/ert.el | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el index 5f29c2665a3..25237feae2a 100644 --- a/lisp/emacs-lisp/ert.el +++ b/lisp/emacs-lisp/ert.el @@ -274,7 +274,7 @@ DATA is displayed to the user and should state the reason for skipping." It should only be stopped when ran from inside ert--run-test-internal." (when (and (not (symbolp debugger)) ; only run on anonymous debugger (memq error-symbol '(ert-test-failed ert-test-skipped))) - (funcall debugger 'error data))) + (funcall debugger 'error (list error-symbol data)))) (defun ert--special-operator-p (thing) "Return non-nil if THING is a symbol naming a special operator." |