Fixing mutator test printing modulo line numbers

This commit is contained in:
Jay McCarthy 2010-10-15 13:02:17 -06:00
parent f6fbc85d1b
commit 4528c7657a
2 changed files with 28 additions and 6 deletions

View File

@ -6,6 +6,7 @@
plai/private/gc-core
scheme/gui/dynamic
(only-in plai/test-harness
exn:plai? equal~?
plai-error generic-test test halt-on-errors print-only-errors)
(for-syntax scheme)
(for-syntax plai/private/gc-transformer)
@ -500,9 +501,18 @@
(syntax-case stx ()
[(_ e1 e2)
(quasisyntax/loc stx
(mutator-let ([e1-addr e1]
[e2-addr e2])
(test e1 e2)))]))
(generic-test
(λ () e1)
(λ (result-value)
(define expected-val e2)
(values
(cond
[(exn:plai? result-value) result-value]
[(equal~? result-value expected-val) true]
[else false])
expected-val))
(quote (heap-loc #,(syntax->datum #'e1)))
(format "at line ~a" #,(syntax-line stx))))]))
(define-for-syntax (flat-heap-value? v)
(or (number? v) (boolean? v)))
@ -521,5 +531,17 @@
(syntax-case stx (mutator-quote)
[(_ mutator-expr scheme-datum)
(quasisyntax/loc stx
(mutator-let ([v1 mutator-expr])
(test (gc->scheme v1) (expand-scheme scheme-datum))))]))
(generic-test
(λ ()
(mutator-let ([v1 mutator-expr])
(gc->scheme v1)))
(λ (result-value)
(define expected-val (expand-scheme scheme-datum))
(values
(cond
[(exn:plai? result-value) result-value]
[(equal~? result-value expected-val) true]
[else false])
expected-val))
(quote #,(syntax->datum #'mutator-expr))
(format "at line ~a" #,(syntax-line stx))))]))

View File

@ -94,7 +94,7 @@
;;; expression in a thunk. More importantly, they automatically specify the
;;; line number of the test as the comment.
(provide generic-test)
(provide generic-test equal~?)
(define (abridged v)
(if (abridged-test-output)
empty