Make special env typecheck tests not run the code at module initialization.

original commit: 4e42a328e30ac34fb99654099335c7c8878ab05d
This commit is contained in:
Eric Dobson 2013-10-08 22:26:13 -07:00
parent 2aa14bc37f
commit 1ddfb446c2
2 changed files with 13 additions and 11 deletions

View File

@ -12,23 +12,21 @@
"infer-tests.rkt" ;; pass
"type-annotation-test.rkt" ;; pass
"keyword-expansion-test.rkt" ;;pass
"special-env-typecheck-tests.rkt" ;;pass"
"contract-tests.rkt"
"interactive-tests.rkt"
racket/runtime-path
rackunit)
(provide unit-tests)
(define-runtime-path special "special-env-typecheck-tests.rkt")
(define unit-tests
(make-test-suite
"Unit Tests"
(list
;; this uses dynamic require because the file fails to compile when there's a test failure
(dynamic-require special 'typecheck-special-tests)
typecheck-special-tests
typecheck-tests
subtype-tests
type-equal-tests

View File

@ -1,6 +1,7 @@
#lang racket
(require "test-utils.rkt"
"evaluator.rkt"
(for-syntax scheme/base)
(for-template scheme/base)
(rep type-rep filter-rep object-rep)
@ -13,6 +14,7 @@
rackunit rackunit/text-ui
syntax/parse
racket/file racket/port
syntax/location
(for-syntax syntax/kerncase syntax/parse racket/syntax
(types abbrev numeric-tower utils)
(utils mutated-vars) (env mvar-env)
@ -29,13 +31,15 @@
(define-syntax (tc-e stx)
(syntax-parse stx
[(_ expr ty) (syntax/loc stx (tc-e expr #:ret (ret ty)))]
[(_ a #:ret b)
(quasisyntax/loc stx
(check-tc-result-equal? (format "~a ~a" #,(syntax-line stx) 'a)
#,(let ([ex (local-expand #'a 'expression null)])
(find-mutated-vars ex mvar-env)
(tc-expr ex))
#,(syntax-local-eval #'b)))]))
[(id a #:ret b)
(syntax/loc stx
(let ([res1 (phase1-phase0-eval
(let ([ex (local-expand #'a 'expression null)])
(find-mutated-vars ex mvar-env)
#`'#,(tc-expr ex)))]
[res2 (phase1-phase0-eval #`'#,b)])
(check-tc-result-equal? (format "~a ~a" (quote-line-number id) 'a)
res1 res2)))]))
(define typecheck-special-tests
(test-suite