program. Scheme工程的独立核验入口[mce-project-checks]
Defines: (caught-key run-checks)
Assembled in Scheme工程核验模块
Outputs: lp-example/mce/checks.scm
Requires: run, examples, errors
(define (caught-key thunk)
(catch #t (lambda () (thunk) 'returned)
(lambda (key . arguments) key)))
(define (run-checks)
(for-each
(lambda (example)
(unless (equal? (run (cadr example)) (caddr example))
(error "Result mismatch" (car example)))) examples)
(for-each
(lambda (example)
(unless (eq? (caught-key (lambda () (run (cadr example)))) (caddr example))
(error "Exception mismatch" (car example)))) errors)
(list (length examples) (length errors)))