1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Avoid excessively large backtraces in ert-tests (bug#71988)

* test/lisp/emacs-lisp/ert-tests.el (ert-test-run-tests-batch-expensive):
Temporarily make `cl-print-object' not print out vectors while running
the test.
This commit is contained in:
Pip Cet 2024-07-08 19:50:16 +00:00
parent 60a567af86
commit 0264ab1118

View file

@ -595,9 +595,14 @@ This macro is used to test if macroexpansion in `should' works."
:body (lambda () (should (equal complex-list 1))))))
(let ((ert-debug-on-error nil)
messages)
(cl-letf* (((symbol-function 'message)
(cl-letf* (((symbol-function 'cl-print-object)
(symbol-function 'cl-print-object))
((symbol-function 'message)
(lambda (format-string &rest args)
(push (apply #'format format-string args) messages))))
;; don't print the ert--stats-tests vector, which would run out of
;; memory if previous tests have failed.
(cl-defmethod cl-print-object ((_object vector) _stream))
(save-window-excursion
(let ((case-fold-search nil)
(ert-batch-backtrace-right-margin nil)
@ -612,7 +617,9 @@ This macro is used to test if macroexpansion in `should' works."
do
(unless found-frame
(setq found-frame (cl-search frame msg :test 'equal))))
(should found-frame)))))
(should found-frame))))
;; ensure our temporary binding was undone.
(should (equal (cl-prin1-to-string [a]) "[a]")))
(ert-deftest ert-test-special-operator-p ()
(should (ert--special-operator-p 'if))