summaryrefslogtreecommitdiff
path: root/test-suite/tests/popen.test
diff options
context:
space:
mode:
Diffstat (limited to 'test-suite/tests/popen.test')
-rw-r--r--test-suite/tests/popen.test16
1 files changed, 9 insertions, 7 deletions
diff --git a/test-suite/tests/popen.test b/test-suite/tests/popen.test
index 19d3edc49..1dd2bc78e 100644
--- a/test-suite/tests/popen.test
+++ b/test-suite/tests/popen.test
@@ -82,9 +82,10 @@
(port (with-error-to-port (cdr pair)
(lambda ()
(open-input-pipe
- "exec 1>/dev/null; echo closed 1>&2; sleep 999")))))
- (read-char (car pair)) ;; wait for child to do its thing
- (and (char-ready? port)
+ "exec 1>/dev/null; echo closed 1>&2; exec 2>/dev/null; sleep 999")))))
+ (close-port (cdr pair)) ;; write side
+ (and (char? (read-char (car pair))) ;; wait for child to do its thing
+ (char-ready? port)
(eof-object? (read-char port))))))
;;
@@ -131,15 +132,16 @@
(port (with-error-to-port (cdr pair)
(lambda ()
(open-output-pipe
- "exec 0</dev/null; echo closed 1>&2; sleep 999")))))
- (read-char (car pair)) ;; wait for child to do its thing
- (catch 'system-error
+ "exec 0</dev/null; echo closed 1>&2; exec 2>/dev/null; sleep 999")))))
+ (close-port (cdr pair)) ;; write side
+ (and (char? (read-char (car pair))) ;; wait for child to do its thing
+ (catch 'system-error
(lambda ()
(write-char #\x port)
(force-output port)
#f)
(lambda (key name fmt args errno-list)
- (= (car errno-list) EPIPE))))))))
+ (= (car errno-list) EPIPE)))))))))
;;
;; close-pipe