better testing
svn: r790
This commit is contained in:
parent
c401823251
commit
bc105baff0
|
@ -24,7 +24,7 @@
|
|||
(define (parse sexp)
|
||||
(cond
|
||||
[(number? sexp) (num sexp)]
|
||||
[(list? sexp)
|
||||
[(cons? sexp)
|
||||
(case (first sexp)
|
||||
[(+) (add (parse (second sexp))
|
||||
(parse (third sexp)))]
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
(test (interp (parse expr)) (num ans)))
|
||||
|
||||
(define (interp-test-error expr expected-exception-msg)
|
||||
(test-exn (lambda () (interp (parse expr))) expected-exception-msg))
|
||||
(test/exn (lambda () (interp (parse expr))) expected-exception-msg))
|
||||
|
||||
(interp-test '5 5)
|
||||
(interp-test '{+ 5 5} 10)
|
||||
|
|
|
@ -1,6 +1,30 @@
|
|||
|
||||
(load "all.scm")
|
||||
(load "arith-interp.scm")
|
||||
(load "hof-env-buggy.scm")
|
||||
(load "hof-subst.scm")
|
||||
(load "subst.scm")
|
||||
(define (run-one-test lang src mod-only?)
|
||||
(printf "Trying ~a ~a\n" lang src)
|
||||
(let ([prog (with-input-from-file src
|
||||
(lambda ()
|
||||
(let loop ()
|
||||
(let ([v (read)])
|
||||
(if (eof-object? v)
|
||||
null
|
||||
(cons v (loop)))))))])
|
||||
(parameterize ([current-namespace (make-namespace)])
|
||||
(eval `(module m (lib ,lang "plai")
|
||||
,@prog))
|
||||
(eval `(require m)))
|
||||
(unless mod-only?
|
||||
(let ([n (current-namespace)])
|
||||
(parameterize ([current-namespace (make-namespace 'empty)])
|
||||
(namespace-attach-module n 'mzscheme)
|
||||
(namespace-require `(lib ,lang "plai"))
|
||||
(for-each (lambda (v) (printf "~e\n" (eval v))) prog))))))
|
||||
|
||||
(run-one-test "plai-beginner.ss" "arith-interp.scm" #t)
|
||||
(run-one-test "plai-intermediate.ss" "arith-interp.scm" #f)
|
||||
(for-each (lambda (src)
|
||||
(run-one-test "plai-advanced.ss" src #f))
|
||||
'("all.scm"
|
||||
"arith-interp.scm"
|
||||
"hof-env-buggy.scm"
|
||||
"hof-subst.scm"
|
||||
"subst.scm"))
|
||||
|
|
Loading…
Reference in New Issue
Block a user