From f33e8c07468a31b3e869062fe4e507ad98288809 Mon Sep 17 00:00:00 2001 From: Alexis King Date: Mon, 6 Jul 2015 23:00:35 -0700 Subject: [PATCH] Fix eval:check in interaction to properly validate its arguments --- scribble-lib/scribble/eval.rkt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/scribble-lib/scribble/eval.rkt b/scribble-lib/scribble/eval.rkt index a70416da..ea3c81fb 100644 --- a/scribble-lib/scribble/eval.rkt +++ b/scribble-lib/scribble/eval.rkt @@ -264,12 +264,12 @@ (get-outputs)))]) (cons (render-value (do-plain-eval ev s #t)) (get-outputs)))) (define (do-ev/expect s expect) - (define r (do-ev s)) (when expect - (let ([expect (do-plain-eval ev (car expect) #t)]) - (unless (equal? (car r) expect) + (let ([r (do-plain-eval ev s #t)] + [expect (do-plain-eval ev (car expect) #t)]) + (unless (equal? r expect) (raise-syntax-error 'eval "example result check failed" s)))) - r) + (do-ev s)) (lambda (str) (if (eval-results? str) (list (map formatted-result (eval-results-contents str)) @@ -280,6 +280,12 @@ (list (list (void)) "" "") (do-ev/expect s expect)))))) +(module+ test + (require rackunit) + (test-case + "eval:check in interaction" + (check-not-exn (λ () (interaction (eval:check #t #t)))))) + (define scribble-exn->string (make-parameter (λ (e)