test-framework.rkt (2363B)
1 #lang typed/racket 2 3 ;; TODO: Warning: this file may be deprecated or out of date. 4 5 (require "typed-untyped.rkt") 6 (define-typed/untyped-modules #:no-test 7 ;; Using check-equal? on some values result in the following error message: 8 ;; Attempted to use a higher-order value passed as `Any` in untyped code 9 ;; check-equal? and check-not-equal? are replaced by versions that work with 10 ;; “higher-order values” below. 11 12 (require (except-in (only-meta-in 0 typed/rackunit) 13 ;; Above: typed/racket risks complaining that it can't do 14 ;; for-meta in all-from-out if we don't use `only-meta-in` 15 check-equal? 16 check-not-equal?)) 17 18 (provide (all-from-out typed/rackunit) 19 check-equal? 20 check-not-equal? 21 check-eval-equal? 22 check-eval-string-equal? 23 check-eval-string-equal?/ns) 24 25 (require "eval-get-values.rkt") 26 27 (require syntax/parse/define) 28 29 (define-simple-macro (check-equal? x y . message) 30 (check-true (equal? x y) . message)) 31 32 (define-simple-macro (check-not-equal? x y . message) 33 (check-true (not (equal? x y)) . message)) 34 35 (define-simple-macro (check-eval-equal? to-eval y . message) 36 (check-true (equal? (eval-get-values to-eval 37 (variable-reference->namespace 38 (#%variable-reference))) 39 y) 40 . message)) 41 42 (define-simple-macro (check-eval-string-equal? to-eval y . message) 43 (check-true (equal? (eval-get-values (read (open-input-string to-eval)) 44 (variable-reference->namespace 45 (#%variable-reference))) 46 y) 47 . message)) 48 49 (define-simple-macro (check-eval-string-equal?/ns ns-anchor to-eval y 50 . message) 51 (check-true (equal? (eval-get-values (read (open-input-string to-eval)) 52 (namespace-anchor->namespace 53 ns-anchor)) 54 y) 55 . message)) 56 57 (define-syntax-rule (test-module body ...) 58 (module* test typed/racket 59 (require (submod "..")) 60 body ...)))