[PATCH 3/5] ws2_32/tests: getsockopt(SO_SNDBUF/SO_RCVBUF) only breaks on Linux

Damjan Jovanovic damjan.jov at gmail.com
Sun Jan 5 12:32:52 CST 2020


Wine bug 8606, where getsockopt(SO_SNDBUF/SO_RCVBUF) returns double
the value set by setsockopt(SO_SNDBUF/SO_RCVBUF), is Linux-specific.
FreeBSD works perfectly.

Make its unit test a todo_wine for Linux only.

Signed-off-by: Damjan Jovanovic <damjan.jov at gmail.com>
---
 dlls/ws2_32/tests/sock.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
-------------- next part --------------
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 60c5dfc63f..6ee50d94b6 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -1458,7 +1458,10 @@ static void test_set_getsockopt(void)
     value = 0xdeadbeef;
     err = getsockopt(s, SOL_SOCKET, SO_SNDBUF, (char *)&value, &size);
     ok( !err, "getsockopt(SO_SNDBUF) failed error: %u\n", WSAGetLastError() );
-    todo_wine ok( value == 4096, "expected 4096, got %u\n", value );
+#if defined(linux)
+todo_wine
+#endif
+    ok( value == 4096, "expected 4096, got %u\n", value );
 
     /* SO_RCVBUF */
     value = 4096;
@@ -1468,7 +1471,10 @@ static void test_set_getsockopt(void)
     value = 0xdeadbeef;
     err = getsockopt(s, SOL_SOCKET, SO_RCVBUF, (char *)&value, &size);
     ok( !err, "getsockopt(SO_RCVBUF) failed error: %u\n", WSAGetLastError() );
-    todo_wine ok( value == 4096, "expected 4096, got %u\n", value );
+#if defined(linux)
+todo_wine
+#endif
+    ok( value == 4096, "expected 4096, got %u\n", value );
 
     /* SO_LINGER */
     for( i = 0; i < ARRAY_SIZE(linger_testvals);i++) {


More information about the wine-devel mailing list