commit 3d6e02b8b3c2969bb4a44d44d697aa415c5d623b parent c63d3e7ccb253a7c8a54db5eff8d33d012e1876f Author: Robby Findler <robby@racket-lang.org> Date: Sat, 24 Nov 2018 14:44:51 +0100 improve eval:check's error message to include the expected and actual results Diffstat:
| M | scribble-lib/scribble/eval.rkt | | | 19 | ++++++++++++++++++- |
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/scribble-lib/scribble/eval.rkt b/scribble-lib/scribble/eval.rkt @@ -325,8 +325,25 @@ (when expect (let ([expect (do-plain-eval ev (car expect) #t)]) (unless (equal? val expect) - (error 'eval "example result check failed: ~.s" s)))) + (define result " result: ") + (define expected " expected: ") + (error 'eval "example result check failed: ~.s\n~a\n~a\n" + s + (string-append result (to-lines val (string-length result))) + (string-append expected (to-lines expect (string-length expected))))))) render+output) + + (define (to-lines exps blank-space) + (define blank (make-string blank-space #\space)) + (apply + string-append + (for/list ([exp (in-list exps)] + [i (in-naturals)]) + (define first-line? (= i 0)) + (if (= i 0) + (format "~e" exp) + (format "\n~a~e" blank exp))))) + (lambda (str) (if (eval-results? str) (list #f