RFR: 8304286: java/net/SocketOption/OptionsTest.java failing after JDK-8302659

Alan Bateman alanb at openjdk.org
Thu Mar 16 19:49:50 UTC 2023


On Thu, 16 Mar 2023 18:58:31 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:

>> test/jdk/java/net/SocketOption/OptionsTest.java line 115:
>> 
>>> 113:                     } catch (SocketException ex) {
>>> 114:                         // continue
>>> 115:                     }
>> 
>> isn't that going to hide bugs that the test would have detected?
>
> I don't think so; if all interfaces are skipped, the test will fail - setting a null interface is not permitted.
> 
> Other multicast-related tests do similar things:
> - `java/net/MulticastSocket/TestInterfaces.java` [skips interfaces that throw an exception](https://github.com/openjdk/jdk/blob/master/test/jdk/java/net/MulticastSocket/TestInterfaces.java#L103)
> - `NetworkConfiguration.multicastInterfaces` [skips interfaces that don't have a network address](https://github.com/openjdk/jdk/blob/master/test/lib/jdk/test/lib/NetworkConfiguration.java#L198); we can't do that here because we're testing with a security manager and can't retrieve addresses.

Could you try something like to find an interface with an IP address configured:

        boolean preferIPv4 = Boolean.getBoolean("java.net.preferIPv4Stack");
        Class<? extends InetAddress> clazz = preferIPv4 ? Inet4Address.class : Inet6Address.class;
        var ni = NetworkInterface.networkInterfaces()
                .filter(_ni -> _ni.inetAddresses().anyMatch(clazz::isInstance))
                .findAny()
                .orElse(null);

-------------

PR: https://git.openjdk.org/jdk/pull/13061


More information about the net-dev mailing list