fixed exn handler
svn: r9716
This commit is contained in:
parent
c383bfdab2
commit
db46754271
|
@ -36,16 +36,15 @@
|
||||||
|
|
||||||
(define-runtime-path here ".")
|
(define-runtime-path here ".")
|
||||||
|
|
||||||
(define (eprintf fmt . xs)
|
|
||||||
(apply fprintf (current-error-port) fmt xs))
|
|
||||||
|
|
||||||
(define exit-code 0)
|
(define exit-code 0)
|
||||||
|
|
||||||
(for ([t tests])
|
(for ([t tests])
|
||||||
(define name (cadr t))
|
(define name (cadr t))
|
||||||
|
(define stderr (current-error-port))
|
||||||
(define (echo fmt . args)
|
(define (echo fmt . args)
|
||||||
(fprintf (current-error-port) "*** ~a: ~a\n" name (apply format fmt args)))
|
(fprintf stderr "*** ~a: ~a\n" name (apply format fmt args)))
|
||||||
(newline (current-error-port))
|
(define orig-exn-handler (uncaught-exception-handler))
|
||||||
|
(newline stderr)
|
||||||
(echo "running...")
|
(echo "running...")
|
||||||
(let/ec break
|
(let/ec break
|
||||||
(define (abort n fmt . xs)
|
(define (abort n fmt . xs)
|
||||||
|
@ -59,7 +58,9 @@
|
||||||
(parameterize* ([exit-handler
|
(parameterize* ([exit-handler
|
||||||
(lambda (n) (abort n "exit with error code ~a" n))]
|
(lambda (n) (abort n "exit with error code ~a" n))]
|
||||||
[uncaught-exception-handler
|
[uncaught-exception-handler
|
||||||
(lambda (exn) (abort 1 "error: ~a" (exn-message exn)))]
|
(lambda (exn)
|
||||||
|
(when (eq? orig-exn-handler (uncaught-exception-handler))
|
||||||
|
(abort 1 "error: ~a" (exn-message exn))))]
|
||||||
[current-namespace (make-base-empty-namespace)])
|
[current-namespace (make-base-empty-namespace)])
|
||||||
(for-each namespace-require (cddr t))
|
(for-each namespace-require (cddr t))
|
||||||
((case (car t) [(load) load] [(require) namespace-require])
|
((case (car t) [(load) load] [(require) namespace-require])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user