From d5870c71eace1ef5cad8a09599af3ab5f6ef72df Mon Sep 17 00:00:00 2001 From: John Barboza Date: Mon, 14 May 2018 07:14:16 -0700 Subject: [PATCH] zos: fix udp ipv6 test cases * Use the correct interface name "LOOPBACK6". * Interpret EADDRNOTAVAIL as multicast not being supported. PR-URL: https://github.com/libuv/libuv/pull/1839 Reviewed-By: Ben Noordhuis Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau Reviewed-By: Santiago Gimeno --- src/unix/udp.c | 4 ---- test/test-udp-multicast-interface6.c | 10 ++++++++++ test/test-udp-multicast-join6.c | 8 +++++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/unix/udp.c b/src/unix/udp.c index 74d613b68..7ebf09423 100644 --- a/src/unix/udp.c +++ b/src/unix/udp.c @@ -567,10 +567,6 @@ static int uv__udp_set_membership6(uv_udp_t* handle, optname, &mreq, sizeof(mreq))) { -#if defined(__MVS__) - if (errno == ENXIO) - return UV_ENODEV; -#endif return UV__ERR(errno); } diff --git a/test/test-udp-multicast-interface6.c b/test/test-udp-multicast-interface6.c index 40b05536d..df10f3d02 100644 --- a/test/test-udp-multicast-interface6.c +++ b/test/test-udp-multicast-interface6.c @@ -74,9 +74,19 @@ TEST_IMPL(udp_multicast_interface6) { #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) r = uv_udp_set_multicast_interface(&server, "::1%lo0"); +#elif defined(__MVS__) + r = uv_udp_set_multicast_interface(&server, "::1%LOOPBACK6"); #else r = uv_udp_set_multicast_interface(&server, NULL); #endif + +#if defined(__MVS__) + if (r == UV_EADDRNOTAVAIL) { + MAKE_VALGRIND_HAPPY(); + RETURN_SKIP("No ipv6 multicast route"); + } +#endif + ASSERT(r == 0); /* server sends "PING" */ diff --git a/test/test-udp-multicast-join6.c b/test/test-udp-multicast-join6.c index 8814b5ad1..ac73e12f2 100644 --- a/test/test-udp-multicast-join6.c +++ b/test/test-udp-multicast-join6.c @@ -121,14 +121,20 @@ TEST_IMPL(udp_multicast_join6) { /* join the multicast channel */ #if defined(__APPLE__) || \ defined(_AIX) || \ - defined(__MVS__) || \ defined(__FreeBSD_kernel__) || \ defined(__NetBSD__) r = uv_udp_set_membership(&client, "ff02::1", "::1%lo0", UV_JOIN_GROUP); +#elif defined(__MVS__) + r = uv_udp_set_membership(&client, "ff02::1", "::1%LOOPBACK6", UV_JOIN_GROUP); #else r = uv_udp_set_membership(&client, "ff02::1", NULL, UV_JOIN_GROUP); #endif + +#if defined(__MVS__) + if (r == UV_EADDRNOTAVAIL) { +#else if (r == UV_ENODEV) { +#endif MAKE_VALGRIND_HAPPY(); RETURN_SKIP("No ipv6 multicast route"); }