From 81815980d7bd9dc3e929ccf1bf88d68dfec81810 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 14 Oct 2019 13:32:01 -0600 Subject: [PATCH] adjust test for Windows Adjusts a test added in 89403dc8cd. --- pkgs/racket-test-core/tests/racket/file.rktl | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/racket-test-core/tests/racket/file.rktl b/pkgs/racket-test-core/tests/racket/file.rktl index 34808e86ce..0af4e74d6b 100644 --- a/pkgs/racket-test-core/tests/racket/file.rktl +++ b/pkgs/racket-test-core/tests/racket/file.rktl @@ -1211,12 +1211,22 @@ (close-input-port e) (subprocess-wait s)) -(let () - (define-values (s i o e) (subprocess #f #f #f (find-exe) "-e" "(let loop () (write-bytes (make-bytes 1024)) (loop))")) +(for ([force-close? '(#t #f)]) + (define c (make-custodian)) + + (define-values (s i o e) + (parameterize ([current-custodian c]) + (subprocess #f #f #f (find-exe) "-e" "(let loop () (write-bytes (make-bytes 1024)) (loop))"))) (thread (lambda () (sync (system-idle-evt)) - (close-output-port o))) + (if (or force-close? + ;; For Windows, we need a close that doesn't try + ;; to flush, because there's no way to avoid + ;; buffering at the rktio level: + (eq? 'windows (system-type))) + (custodian-shutdown-all c) + (close-output-port o)))) (err/rt-test (let loop ()