POSIX does not explicitly say that stored value using setsockopt will be returned by getsockopt. At least for TCP_NODELAY on Darwin they do differ. Darwin returns internal define TF_NODELAY (4) instead of 1 the test expected. Since for boolean flags "non-zero is true", rewrite the test to check just that.
* test-suite/tests/00-socket.test ("setsockopt AF_INET") ["IPPROTO_TCP TCP_NODELAY"]: Check for non-zero value from getsockopt. --- test-suite/tests/00-socket.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-suite/tests/00-socket.test b/test-suite/tests/00-socket.test index b3692f61a..17e686225 100644 --- a/test-suite/tests/00-socket.test +++ b/test-suite/tests/00-socket.test @@ -147,7 +147,7 @@ (pass-if "IPPROTO_TCP TCP_NODELAY" (let ((sock (socket AF_INET SOCK_STREAM 0))) (setsockopt sock IPPROTO_TCP TCP_NODELAY 1) - (eqv? 1 (getsockopt sock IPPROTO_TCP TCP_NODELAY)))))) + (not (eqv? 0 (getsockopt sock IPPROTO_TCP TCP_NODELAY))))))) ;;; -- 2.45.2