# HG changeset patch # User pconcannon # Date 1573728560 0 # Node ID 625262261ef22b304dbbc4196c5571efb95fd5bd # Parent 1c071f73949a93e3f76e415befb39689aa46ac47 8233860: AfterClose.java test incorrectly handles IP_MULTICAST_IF Summary: Correction to invalid value used to ensure test fails as expected. Reviewed-by: alanb, dfuchs, vtewari diff -r 1c071f73949a -r 625262261ef2 test/jdk/java/net/SocketOption/AfterClose.java --- a/test/jdk/java/net/SocketOption/AfterClose.java Thu Nov 14 18:41:04 2019 +0000 +++ b/test/jdk/java/net/SocketOption/AfterClose.java Thu Nov 14 10:49:20 2019 +0000 @@ -34,8 +34,10 @@ import java.lang.reflect.Method; import java.net.DatagramSocket; import java.net.MulticastSocket; +import java.net.NetworkInterface; import java.net.ServerSocket; import java.net.Socket; +import java.net.SocketException; import java.net.SocketOption; import java.nio.channels.DatagramChannel; import java.nio.channels.ServerSocketChannel; @@ -45,6 +47,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import static java.lang.Boolean.*; @@ -57,9 +60,26 @@ static Map,List> OPTION_VALUES_MAP = optionValueMap(); + static boolean supportsMulticast(NetworkInterface ni) { + try { + return ni.supportsMulticast(); + } catch (SocketException e) { + return false; + } + } + + static List listNetworkInterfaces() { + try { + return NetworkInterface.networkInterfaces() + .filter(AfterClose::supportsMulticast) + .collect(Collectors.toList()); + } catch (Exception e) { } + return List.of(); + } + static Map,List> optionValueMap() { Map,List> map = new HashMap<>(); - map.put(IP_MULTICAST_IF, listOf(TRUE, FALSE) ); + map.put(IP_MULTICAST_IF, listNetworkInterfaces() ); map.put(IP_MULTICAST_LOOP, listOf(TRUE, FALSE) ); map.put(IP_MULTICAST_TTL, listOf(0, 100, 255) ); map.put(IP_TOS, listOf(0, 101, 255) );