From a3777bc180b1dd2233d27abab35451f7bcb3b2b4 Mon Sep 17 00:00:00 2001 From: Min RK Date: Tue, 1 Oct 2019 16:26:16 +0200 Subject: [PATCH] revert test-udp-multicast-join to 1.31 new test fails on macOS created with ``` git checkout v1.32.0 git checkout v1.31.0 test/test-udp-multicast-join.c git commit git format-patch v1.32.0 ``` --- test/test-udp-multicast-join.c | 74 ++++++++++------------------------ 1 file changed, 22 insertions(+), 52 deletions(-) diff --git a/test/test-udp-multicast-join.c b/test/test-udp-multicast-join.c index 6bac072d..053d2f79 100644 --- a/test/test-udp-multicast-join.c +++ b/test/test-udp-multicast-join.c @@ -29,12 +29,8 @@ #define CHECK_HANDLE(handle) \ ASSERT((uv_udp_t*)(handle) == &server || (uv_udp_t*)(handle) == &client) -#define MULTICAST_ADDR "239.255.0.1" - static uv_udp_t server; static uv_udp_t client; -static uv_udp_send_t req; -static uv_udp_send_t req_ss; static int cl_recv_cb_called; @@ -66,26 +62,7 @@ static void sv_send_cb(uv_udp_send_t* req, int status) { sv_send_cb_called++; - if (sv_send_cb_called == 2) - uv_close((uv_handle_t*) req->handle, close_cb); -} - - -static int do_send(uv_udp_send_t* send_req) { - uv_buf_t buf; - struct sockaddr_in addr; - - buf = uv_buf_init("PING", 4); - - ASSERT(0 == uv_ip4_addr(MULTICAST_ADDR, TEST_PORT, &addr)); - - /* client sends "PING" */ - return uv_udp_send(send_req, - &client, - &buf, - 1, - (const struct sockaddr*) &addr, - sv_send_cb); + uv_close((uv_handle_t*) req->handle, close_cb); } @@ -97,6 +74,8 @@ static void cl_recv_cb(uv_udp_t* handle, CHECK_HANDLE(handle); ASSERT(flags == 0); + cl_recv_cb_called++; + if (nread < 0) { ASSERT(0 && "unexpected error"); } @@ -111,35 +90,18 @@ static void cl_recv_cb(uv_udp_t* handle, ASSERT(nread == 4); ASSERT(!memcmp("PING", buf->base, nread)); - cl_recv_cb_called++; - - if (cl_recv_cb_called == 2) { - /* we are done with the server handle, we can close it */ - uv_close((uv_handle_t*) &server, close_cb); - } else { - int r; - char source_addr[64]; - - r = uv_ip4_name((const struct sockaddr_in*)addr, source_addr, sizeof(source_addr)); - ASSERT(r == 0); - - r = uv_udp_set_membership(&server, MULTICAST_ADDR, NULL, UV_LEAVE_GROUP); - ASSERT(r == 0); - - r = uv_udp_set_source_membership(&server, MULTICAST_ADDR, NULL, source_addr, UV_JOIN_GROUP); - ASSERT(r == 0); - - r = do_send(&req_ss); - ASSERT(r == 0); - } + /* we are done with the client handle, we can close it */ + uv_close((uv_handle_t*) &client, close_cb); } TEST_IMPL(udp_multicast_join) { int r; + uv_udp_send_t req; + uv_buf_t buf; struct sockaddr_in addr; - ASSERT(0 == uv_ip4_addr("0.0.0.0", TEST_PORT, &addr)); + ASSERT(0 == uv_ip4_addr("127.0.0.1", TEST_PORT, &addr)); r = uv_udp_init(uv_default_loop(), &server); ASSERT(r == 0); @@ -148,19 +110,27 @@ TEST_IMPL(udp_multicast_join) { ASSERT(r == 0); /* bind to the desired port */ - r = uv_udp_bind(&server, (const struct sockaddr*) &addr, 0); + r = uv_udp_bind(&client, (const struct sockaddr*) &addr, 0); ASSERT(r == 0); /* join the multicast channel */ - r = uv_udp_set_membership(&server, MULTICAST_ADDR, NULL, UV_JOIN_GROUP); + r = uv_udp_set_membership(&client, "239.255.0.1", NULL, UV_JOIN_GROUP); if (r == UV_ENODEV) RETURN_SKIP("No multicast support."); ASSERT(r == 0); - r = uv_udp_recv_start(&server, alloc_cb, cl_recv_cb); + r = uv_udp_recv_start(&client, alloc_cb, cl_recv_cb); ASSERT(r == 0); - r = do_send(&req); + buf = uv_buf_init("PING", 4); + + /* server sends "PING" */ + r = uv_udp_send(&req, + &server, + &buf, + 1, + (const struct sockaddr*) &addr, + sv_send_cb); ASSERT(r == 0); ASSERT(close_cb_called == 0); @@ -170,8 +140,8 @@ TEST_IMPL(udp_multicast_join) { /* run the loop till all events are processed */ uv_run(uv_default_loop(), UV_RUN_DEFAULT); - ASSERT(cl_recv_cb_called == 2); - ASSERT(sv_send_cb_called == 2); + ASSERT(cl_recv_cb_called == 1); + ASSERT(sv_send_cb_called == 1); ASSERT(close_cb_called == 2); MAKE_VALGRIND_HAPPY(); -- 2.23.0