aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
Diffstat (limited to 'test/src')
-rw-r--r--test/src/eval-tests.el20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/src/eval-tests.el b/test/src/eval-tests.el
index 201382da9c4..e68fd136113 100644
--- a/test/src/eval-tests.el
+++ b/test/src/eval-tests.el
@@ -79,4 +79,24 @@ Bug#24912 and Bug#24913."
79 (let ((clauses (list '((progn (setcdr clauses "ouch") nil))))) 79 (let ((clauses (list '((progn (setcdr clauses "ouch") nil)))))
80 (should-error (eval (cons 'cond clauses))))) 80 (should-error (eval (cons 'cond clauses)))))
81 81
82(defun eval-tests--exceed-specbind-limit ()
83 (defvar eval-tests--var1)
84 (defvar eval-tests--var2)
85 ;; Bind two variables, to make extra sure we hit the
86 ;; `max-specpdl-size' limit before the `max-lisp-eval-depth' limit.
87 (let ((eval-tests--var1 1)
88 (eval-tests--var2 2))
89 ;; Recurse until we hit the limit.
90 (eval-tests--exceed-specbind-limit)))
91
92(ert-deftest eval-exceed-specbind-with-signal-hook ()
93 "Test for Bug#30481.
94Check that Emacs doesn't crash when exceeding specbind limit with
95`signal-hook-function' bound. NOTE: Without the fix for
96Bug#30481, this test can appear to pass, but cause a
97crash/abort/malloc assert failure on the next test."
98 (let ((max-specpdl-size (/ max-lisp-eval-depth 2))
99 (signal-hook-function #'ignore))
100 (should-error (eval-tests--exceed-specbind-limit))))
101
82;;; eval-tests.el ends here 102;;; eval-tests.el ends here