commit f33e8c07468a31b3e869062fe4e507ad98288809
parent 1a6f1b593e9a516860341994405612558fe64ea7
Author: Alexis King <lexi.lambda@gmail.com>
Date: Mon, 6 Jul 2015 23:00:35 -0700
Fix eval:check in interaction to properly validate its arguments
Diffstat:
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git 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)