diff --git a/scribble-lib/scribble/eval.rkt b/scribble-lib/scribble/eval.rkt index 7c41aac2..2df5beba 100644 --- a/scribble-lib/scribble/eval.rkt +++ b/scribble-lib/scribble/eval.rkt @@ -44,7 +44,7 @@ (-> any/c any)] [scribble-exn->string - (-> any/c string?)] + (parameter/c (-> any/c string?))] [scribble-eval-handler (parameter/c (-> (-> any/c any) boolean? any/c any))] [make-log-based-eval diff --git a/scribble-test/tests/scribble/example.rkt b/scribble-test/tests/scribble/example.rkt index 1e7ec167..be26d0ea 100644 --- a/scribble-test/tests/scribble/example.rkt +++ b/scribble-test/tests/scribble/example.rkt @@ -32,10 +32,27 @@ (check-exn blames-this-module? (λ () (make-eval-factory '() #:lang '(+ 2 2)))) + (check-exn blames-this-module? + (λ () (scribble-exn->string #f))) + (check-exn blames-this-module? + (λ () (scribble-exn->string (λ (a b c) a)))) + (check-not-exn + (λ () (scribble-exn->string))) + (check-not-exn + (λ () + (parameterize ((scribble-exn->string (λ (a) "hello"))) + ((scribble-exn->string) "error")))) + (check-exn blames-this-module? (λ () (scribble-eval-handler #f))) (check-exn blames-this-module? (λ () (scribble-eval-handler (λ (ev t) t)))) + (check-not-exn + (λ () (scribble-eval-handler))) + (check-not-exn + (λ () + (parameterize ((scribble-eval-handler (λ (a b c) c))) + ((scribble-eval-handler) (λ (x) x) #f #true)))) (check-exn blames-this-module? (λ () (make-log-based-eval #f 'record)))