X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcondition.impure.lisp;h=4722d92df09477eab1ee18aa4e9fac94a01b72cc;hb=0a15b6bbf9d5d3a64b5ac08bb96b6e5ec221d2ae;hp=f7ea61a2b917ca40d7fb735834c95ca804798a41;hpb=a8709a851b09f7fd489c5cd7a71bee73f9e1cf9a;p=sbcl.git diff --git a/tests/condition.impure.lisp b/tests/condition.impure.lisp index f7ea61a..4722d92 100644 --- a/tests/condition.impure.lisp +++ b/tests/condition.impure.lisp @@ -108,3 +108,16 @@ ;; whether escaped or not (dolist (*print-escape* '(nil t)) (write c :stream (make-string-output-stream))))) + +;;; Reported by Michael Weber: restart computation in :TEST-FUNCTION used to +;;; cause infinite recursion. +(defun restart-test-finds-restarts () + (restart-bind + ((bar (lambda () + (return-from restart-test-finds-restarts 42)) + :test-function + (lambda (condition) + (find-restart 'qux)))) + (when (find-restart 'bar) + (invoke-restart 'bar)))) +(assert (not (restart-test-finds-restarts)))