(should-error (eval (cons 'cond clauses) nil))
(should-error (eval (cons 'cond clauses) t))))
-(defun eval-tests--exceed-specbind-limit ()
- (defvar eval-tests--var1)
- (defvar eval-tests--var2)
- ;; Bind two variables, to make extra sure we hit the
- ;; `max-specpdl-size' limit before the `max-lisp-eval-depth' limit.
- (let ((eval-tests--var1 1)
- (eval-tests--var2 2))
- ;; Recurse until we hit the limit.
- (eval-tests--exceed-specbind-limit)))
-
-(ert-deftest eval-exceed-specbind-with-signal-hook ()
- "Test for Bug#30481.
-Check that Emacs doesn't crash when exceeding specbind limit with
-`signal-hook-function' bound. NOTE: Without the fix for
-Bug#30481, this test can appear to pass, but cause a
-crash/abort/malloc assert failure on the next test."
- (let ((max-specpdl-size (/ max-lisp-eval-depth 2))
- (signal-hook-function #'ignore))
- (should-error (eval-tests--exceed-specbind-limit))))
-
(ert-deftest defvar/bug31072 ()
"Check that Bug#31072 is fixed."
(should-error (eval '(defvar 1) t) :type 'wrong-type-argument))