diff --git a/collects/tests/typed-scheme/optimizer/run.rkt b/collects/tests/typed-scheme/optimizer/run.rkt index fefc4099..0a1251a5 100644 --- a/collects/tests/typed-scheme/optimizer/run.rkt +++ b/collects/tests/typed-scheme/optimizer/run.rkt @@ -1,41 +1,11 @@ #lang racket (require racket/runtime-path - rackunit rackunit/text-ui) + rackunit rackunit/text-ui + unstable/logging) (provide optimization-tests missed-optimization-tests test-opt test-missed-optimization) -(define (with-logging-to-port port level proc) - (let* ([logger (make-logger #f (current-logger))] - [receiver (make-log-receiver logger level)] - [stop-chan (make-channel)] - [t (thread (lambda () - (define (output-event l) - (displayln (vector-ref l 1) ; actual message - port)) - (define (clear-events) - (let ([l (sync/timeout 0 receiver)]) - (when l ; still something to read - (output-event l) - (clear-events)))) - (let loop () - (let ([l (sync receiver stop-chan)]) - (cond [(eq? l 'stop) - ;; we received all the events we were supposed - ;; to get, read them all (w/o waiting), then - ;; stop - (clear-events)] - [else ; keep going - (output-event l) - (loop)])))))]) - (begin0 - (parameterize ([current-logger logger]) - (proc)) - (channel-put stop-chan 'stop) ; stop the receiver thread - (thread-wait t)))) -;; TODO put in unstable somewhere - - (define (generate-log name dir) ;; some tests require other tests, so some fiddling is required (let* ([log-port (open-output-string)]