From 45d64ce26bf80d40ec30054740e9e85819ad9d04 Mon Sep 17 00:00:00 2001 From: Bruno Jesus <00cpxxx@gmail.com> Date: Tue, 31 Mar 2015 00:06:40 -0300 Subject: [PATCH] ws2_32/tests: Skip part of OOB test to unfreeze NT4 test. NT4 doesn't care about OOB_INLINE and receives data in the wrong recv call so the next call never receives data and hangs forever. Skip it to resume NT4 test normally. --- dlls/ws2_32/tests/sock.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c index 188e25cd41c..533e58c5878 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -3741,11 +3741,14 @@ static void test_select(void) tmp_buf[0] = 0xAF; SetLastError(0xdeadbeef); ret = recv(fdRead, tmp_buf, sizeof(tmp_buf), MSG_OOB); - ok(ret == SOCKET_ERROR, "expected -1, got %d\n", ret); /* can't recv with MSG_OOB if OOBINLINED */ - ok(GetLastError() == WSAEINVAL, "expected 10022, got %d\n", GetLastError()); - ret = recv(fdRead, tmp_buf, sizeof(tmp_buf), 0); - ok(ret == 1, "expected 1, got %d\n", ret); - ok(tmp_buf[0] == 'A', "expected 'A', got 0x%02X\n", tmp_buf[0]); + if (ret == SOCKET_ERROR) /* can't recv with MSG_OOB if OOBINLINED */ + { + ok(GetLastError() == WSAEINVAL, "expected 10022, got %d\n", GetLastError()); + ret = recv(fdRead, tmp_buf, sizeof(tmp_buf), 0); + ok(ret == 1, "expected 1, got %d\n", ret); + ok(tmp_buf[0] == 'A', "expected 'A', got 0x%02X\n", tmp_buf[0]); + } + else ok(broken(ret == 1) /* <= NT4 */, "expected error, got 1\n"); /* When the connection is closed the socket is set in the read descriptor */ ret = closesocket(fdRead); @@ -4724,15 +4727,18 @@ todo_wine i = MSG_OOB; SetLastError(0xdeadbeef); ret = recv(dst, &data, 1, i); - ok(ret == SOCKET_ERROR, "expected -1, got %d\n", ret); - ret = GetLastError(); - ok(ret == WSAEINVAL, "expected 10022, got %d\n", ret); - bufs.len = sizeof(char); - bufs.buf = &data; - ret = WSARecv(dst, &bufs, 1, &bytes_rec, &i, NULL, NULL); - ok(ret == SOCKET_ERROR, "expected -1, got %d\n", ret); - ret = GetLastError(); - ok(ret == WSAEINVAL, "expected 10022, got %d\n", ret); + if (ret == SOCKET_ERROR) + { + ret = GetLastError(); + ok(ret == WSAEINVAL, "expected 10022, got %d\n", ret); + bufs.len = sizeof(char); + bufs.buf = &data; + ret = WSARecv(dst, &bufs, 1, &bytes_rec, &i, NULL, NULL); + ok(ret == SOCKET_ERROR, "expected -1, got %d\n", ret); + ret = GetLastError(); + ok(ret == WSAEINVAL, "expected 10022, got %d\n", ret); + } + else ok(broken(ret == 1) /* <= NT4 */, "expected error, got 1\n"); closesocket(dst); optval = 0xdeadbeef;