(module test mzscheme (provide test report-test-results) (define failed? #f) (define (set-failed!) (set! failed? #t)) (define-syntax test (syntax-rules () [(_ expect expr) (begin (printf "~s =>" 'expr) (flush-output) (let ([v expr] [ex expect]) (printf " ~s" v) (unless (equal? v ex) (set-failed!) (printf " EXPECTED ~s" ex) (exit)) (printf "\n")))])) (define (report-test-results) (printf (if failed? "\nTESTS FAILED\n" "\nAll tests passed.\n"))))