X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Frun.lisp;h=3f03cfa3bed7ebe6beef46eccce63fa96aa46696;hb=b946ea038243212fde4fa87103604a00666ddbf3;hp=481f33abda1a75cc7fb4eeb1901842e71e43add3;hpb=afd9b77ccfe82efa515b6a1546c9f9c4e2a01d8e;p=fiveam.git diff --git a/src/run.lisp b/src/run.lisp index 481f33a..3f03cfa 100644 --- a/src/run.lisp +++ b/src/run.lisp @@ -36,6 +36,9 @@ (defparameter *debug-on-error* nil "T if we should drop into a debugger on error, NIL otherwise.") +(defparameter *debug-on-failure* nil + "T if we should drop into a debugger on a failing check, NIL otherwise.") + (defun import-testing-symbols (package-designator) (import '(5am::is 5am::is-true 5am::is-false 5am::signals 5am::finishes) package-designator)) @@ -133,8 +136,14 @@ run.")) (run-it () (let ((result-list '())) (declare (special result-list)) - (handler-bind ((error (lambda (e) - (unless *debug-on-error* + (handler-bind ((check-failure (lambda (e) + (declare (ignore e)) + (unless *debug-on-failure* + (invoke-restart + (find-restart 'ignore-failure))))) + (error (lambda (e) + (unless (or *debug-on-error* + (typep e 'check-failure)) (abort-test e) (return-from run-it result-list))))) (restart-case