adjust test/spec-passed so that tests continue when exns are raised

(as these usually indicate failing test cases)
This commit is contained in:
Robby Findler 2014-02-10 10:45:03 -06:00
parent 418f1d015d
commit fe6b217433

View File

@ -171,25 +171,33 @@
(contract-eval (contract-eval
#:test-case-name name #:test-case-name name
`(,test `(,test
(void) #:test-case-name ',name
(let ([for-each-eval (lambda (l) (for-each eval l))]) for-each-eval) 'no-exn-raised
(list ',expression '(void)))) eval
'(with-handlers ([exn:fail? exn-message])
,expression
'no-exn-raised)))
(let ([new-expression (rewrite-out expression)]) (let ([new-expression (rewrite-out expression)])
(when new-expression (when new-expression
(contract-eval (contract-eval
#:test-case-name (format "~a rewrite-out" name) #:test-case-name (format "~a rewrite-out" name)
`(,test `(,test
(void) #:test-case-name ,(format "~a rewrite-out" name)
(let ([for-each-eval (lambda (l) (for-each eval l))]) for-each-eval) 'no-exn-raised
(list ',new-expression '(void))))))) eval
'(with-handlers ([exn:fail? exn-message])
,new-expression
'no-exn-raised))))))
(let/ec k (let/ec k
(contract-eval (contract-eval
#:test-case-name (format "~a rewrite-to-add-opt/c" name) #:test-case-name (format "~a rewrite-to-add-opt/c" name)
`(,test (void) `(,test #:test-case-name ,(format "~a rewrite-to-add-opt/c" name)
(let ([for-each-eval (lambda (l) (for-each (λ (x) (eval x)) l))]) 'no-exn-raised
for-each-eval) eval
(list ',(rewrite-to-add-opt/c expression k) '(void)))))) '(with-handlers ([exn:fail? exn-message])
,(rewrite-to-add-opt/c expression k)
'no-exn-raised)))))
(define (test/spec-passed/result name expression result) (define (test/spec-passed/result name expression result)
(parameterize ([compile-enforce-module-constants #f]) (parameterize ([compile-enforce-module-constants #f])