better testing

svn: r790
This commit is contained in:
Matthew Flatt 2005-09-07 21:22:38 +00:00
parent c401823251
commit bc105baff0
3 changed files with 31 additions and 7 deletions

View File

@ -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)))]

View File

@ -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)

View File

@ -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"))