diff options
-rw-r--r-- | test-suite/tests/ports.test | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/test-suite/tests/ports.test b/test-suite/tests/ports.test index 5c508a9ab..6a4357f99 100644 --- a/test-suite/tests/ports.test +++ b/test-suite/tests/ports.test @@ -195,18 +195,20 @@ (string=? (read-line) "moon"))))) ;;; non-blocking mode on a port. create a pipe and set O_NONBLOCK on -;;; the reading end. try to read a byte: should get EAGAIN error. +;;; the reading end. try to read a byte: should get EAGAIN or +;;; EWOULDBLOCK error. (catch-test-errors (let* ((p (pipe)) (r (car p))) - (fcntl r F_SETFL O_NONBLOCK) + (fcntl r F_SETFL (logior (fcntl r F_GETFL) O_NONBLOCK)) (pass-if "non-blocking-I/O" (catch 'system-error (lambda () (read-char r) #f) (lambda (key . args) (and (eq? key 'system-error) - (= (car (list-ref args 3)) EAGAIN))))))) - + (let ((errno (car (list-ref args 3)))) + (or (= errno EAGAIN) + (= errno EWOULDBLOCK))))))))) ;;;; Pipe (popen) ports. |