< prev index next >

test/java/net/MulticastSocket/SetOutgoingIf.java

Print this page
rev 17065 : 7155591: test/java/net/MulticastSocket/SetOutgoingIf.java fails on macOS
Reviewed-by:

*** 1,7 **** /* ! * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 23,36 **** /* * @test * @bug 4742177 * @summary Re-test IPv6 (and specifically MulticastSocket) with latest Linux & USAGI code */ import java.net.*; import java.util.*; ! public class SetOutgoingIf { private static int PORT = 9001; private static String osname; --- 23,40 ---- /* * @test * @bug 4742177 * @summary Re-test IPv6 (and specifically MulticastSocket) with latest Linux & USAGI code + * @library /lib/testlibrary + * @build jdk.testlibrary.NetworkConfiguration + * @run main SetOutgoingIf */ import java.net.*; import java.util.*; ! import jdk.testlibrary.NetworkConfiguration; ! import static java.util.stream.Collectors.toList; public class SetOutgoingIf { private static int PORT = 9001; private static String osname;
*** 39,59 **** osname = System.getProperty("os.name"); return osname.contains("Windows"); } private static boolean hasIPv6() throws Exception { ! List<NetworkInterface> nics = Collections.list( ! NetworkInterface.getNetworkInterfaces()); ! for (NetworkInterface nic : nics) { ! List<InetAddress> addrs = Collections.list(nic.getInetAddresses()); ! for (InetAddress addr : addrs) { ! if (addr instanceof Inet6Address) ! return true; ! } ! } ! ! return false; } public static void main(String[] args) throws Exception { if (isWindows()) { System.out.println("The test only run on non-Windows OS. Bye."); --- 43,53 ---- osname = System.getProperty("os.name"); return osname.contains("Windows"); } private static boolean hasIPv6() throws Exception { ! return NetworkConfiguration.probe().ip6Addresses().findAny().isPresent(); } public static void main(String[] args) throws Exception { if (isWindows()) { System.out.println("The test only run on non-Windows OS. Bye.");
*** 63,97 **** if (!hasIPv6()) { System.out.println("No IPv6 available. Bye."); return; } // We need 2 or more network interfaces to run the test // List<NetIf> netIfs = new ArrayList<NetIf>(); int index = 1; ! for (NetworkInterface nic : Collections.list(NetworkInterface.getNetworkInterfaces())) { ! // we should use only network interfaces with multicast support which are in "up" state ! if (!nic.isLoopback() && nic.supportsMulticast() && nic.isUp()) { NetIf netIf = NetIf.create(nic); ! // now determine what (if any) type of addresses are assigned to this interface ! for (InetAddress addr : Collections.list(nic.getInetAddresses())) { ! if (addr.isAnyLocalAddress()) ! continue; ! ! System.out.println(" addr " + addr); ! if (addr instanceof Inet4Address) { netIf.ipv4Address(true); ! } else if (addr instanceof Inet6Address) { netIf.ipv6Address(true); ! } ! } if (netIf.ipv4Address() || netIf.ipv6Address()) { netIf.index(index++); netIfs.add(netIf); ! debug("Using: " + nic); } } } if (netIfs.size() <= 1) { System.out.println("Need 2 or more network interfaces to run. Bye."); --- 57,89 ---- if (!hasIPv6()) { System.out.println("No IPv6 available. Bye."); return; } + NetworkConfiguration nc = NetworkConfiguration.probe(); + // We need 2 or more network interfaces to run the test // List<NetIf> netIfs = new ArrayList<NetIf>(); int index = 1; ! for (NetworkInterface nic : nc.interfaces().collect(toList())) { ! // only use network interfaces with multicast support ! if (!nic.isLoopback() && nic.supportsMulticast()) { NetIf netIf = NetIf.create(nic); ! // determine what (if any) type of addresses are assigned ! List<Inet4Address> ipv4Addrs = nc.ip4Addresses(nic).collect(toList()); ! List<Inet6Address> ipv6Addrs = nc.ip6Addresses(nic).collect(toList()); ! if (!ipv4Addrs.isEmpty()) netIf.ipv4Address(true); ! if (!ipv6Addrs.isEmpty()) netIf.ipv6Address(true); ! if (netIf.ipv4Address() || netIf.ipv6Address()) { netIf.index(index++); netIfs.add(netIf); ! debug("Using: " + nic + "\n " + ipv4Addrs + ipv6Addrs); } } } if (netIfs.size() <= 1) { System.out.println("Need 2 or more network interfaces to run. Bye.");
< prev index next >