diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/optimizer/transform.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/optimizer/transform.rkt index 54d9d515ad..c9aa2ae060 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/optimizer/transform.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/optimizer/transform.rkt @@ -12,26 +12,28 @@ (define (transform file dir) ;; generate the new log, that will become the expected log (define-values (new-tr-log new-output) (generate-log file dir)) - (define in (open-input-file (build-path dir file))) - (read-line in) ; drop the #;#; - (read in) ; drop the old expected tr log - (read in) ; drop the old expected output - (let ([rest (port->string in)]) - (with-output-to-file (build-path dir file) #:exists 'truncate - (lambda () - (displayln "#;#;") - (displayln "#<string in)))) + (with-output-to-file (build-path dir file) #:exists 'truncate + (lambda () + (displayln "#;#;") + (displayln "#<list (current-command-line-arguments))) - (for-each (lambda (f) - (define-values (path p b) (split-path f)) - (define dir (path->string path)) - ;; this only works if run from the optimizer tests dir - (transform - p - (cond [(equal? dir "tests/") - tests-dir] - [(equal? dir "missed-optimizations/") - missed-optimizations-dir]))) - l)]) + [else ; set of paths to transform (only works if run from the optimizer tests dir) + (define results + (for/list ([f (in-vector (current-command-line-arguments))]) + (define-values (dir-path file-name _) (split-path f)) + (define dir (path->string dir-path)) + (delay/thread + (transform + file-name + (cond [(equal? dir "tests/") + tests-dir] + [(equal? dir "missed-optimizations/") + missed-optimizations-dir]))))) + (for-each force results)])