Fix FORMAT compilation on non-simple strings.
[sbcl.git] / tests / impure-runner.lisp
blob2c981fa289d1bf1edee0a62a3ffc92e21baed541
1 (with-compilation-unit ()
2 (load "test-util")
3 (load "assertoid"))
5 (defpackage :run-tests
6 (:use :cl :test-util :sb-ext))
8 (in-package :cl-user)
9 (use-package :test-util)
10 (use-package :assertoid)
12 (in-package :run-tests)
14 (defvar *break-on-error*)
16 (load "test-funs")
18 (defun run (file test-fun
19 break-on-failure break-on-expected-failure break-on-error
20 interpret)
21 (setf *break-on-failure* break-on-failure
22 *break-on-expected-failure* break-on-expected-failure
23 *break-on-error* break-on-error)
24 (when interpret
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*)
30 (restart-case
31 (handler-bind
32 ((error (lambda (condition)
33 (push (list :unhandled-error file)
34 *failures*)
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)))
44 (skip-file ()
45 (format t ">>>~a<<<~%"*failures*)))
46 (report-test-status)
47 (exit :code 104))