1 (with-compilation-unit ()
6 (:use
:cl
:test-util
:sb-ext
))
9 (use-package :test-util
)
10 (use-package :assertoid
)
12 (in-package :run-tests
)
14 (defvar *break-on-error
*)
18 (defun run (file test-fun
19 break-on-failure break-on-expected-failure break-on-error
21 (setf *break-on-failure
* break-on-failure
22 *break-on-expected-failure
* break-on-expected-failure
23 *break-on-error
* break-on-error
)
25 (setf *test-evaluator-mode
* :interpret
)
26 (push :interpreter
*features
*))
27 (setf sb-ext
:*evaluator-mode
* *test-evaluator-mode
*)
28 (format t
"// Running ~a in ~a evaluator mode~%"
29 file
*evaluator-mode
*)
32 ((error (lambda (condition)
33 (push (list :unhandled-error file
)
35 (cond (*break-on-error
*
36 (test-util:really-invoke-debugger condition
))
38 (format *error-output
* "~&Unhandled ~a: ~a~%"
39 (type-of condition
) condition
)
40 (sb-debug:print-backtrace
)))
41 (invoke-restart 'skip-file
))))
42 (let ((*package
* (find-package :cl-user
)))
43 (funcall test-fun file
)))
45 (format t
">>>~a<<<~%"*failures
*)))