[ipv6] Regarding 8220673: Add test library support for determining platform IP support

Daniel Fuchs daniel.fuchs at oracle.com
Thu May 2 09:28:30 UTC 2019


Hi Arthur,

On the surface, this looks good.
However I have a concern about two things:

1. IPSupport needs to read system properties, attempts
    to bind sockets etc... I wonder how that might interact
    with tests that use a security manager, as some of these
    operations may throw a SecurityException.
    Maybe some double checking would be in order for those.

2. I would also be more comfortable if
    skipIfCurrentConfigurationIsInvalid() (and possibly
    the static initializer too?), could throw an
    AssertionError if it finds that neither IPv4 nor IPv6
    are available on a system. I'm concerned that a bug
    that e.g. prevents to bind any socket would go unnoticed
    if all tests are skipped...

best regards,

-- daniel

PS: Just a heads up that I have a pending fix [1] which I'm intending
to push later today and which also touches some of the tests from
your patch. Hopefully any merge should be trivial.
[1] https://mail.openjdk.java.net/pipermail/net-dev/2019-April/012416.html

On 01/05/2019 23:21, Arthur Eubanks wrote:
> Sorry for the delay, but here's the next revision:
> http://cr.openjdk.java.net/~aeubanks/8220673/webrev.01
> 
> The list of tests modified was found by searching for "preferIPv4Stack" 
> in the tests. The only one I didn't touch was 
> test/jdk/sun/net/sdp/sanity.sh, which is a shell test, and is Solaris-only.
> For most tests, all I did was add 
> IPSupport.skipIfCurrentConfigurationIsInvalid(). Some of them also had 
> custom implementations for detecting if IPv6 was available, so I 
> replaced those with the new IPSupport version.
> Also added a missing "@test" to test/jdk/java/net/Socket/RST.java.
> 
> Again, I made sure that the only time the test is skipped 
> with IPSupport.skipIfCurrentConfigurationIsInvalid() is when IPv4 is not 
> available (with LD_PRELOAD) and when java.net.preferIPv4Stack is true.
> 
> There are still tests that fail/timeout under the LD_PRELOAD that 
> intercepts and rejects IPv4 calls to getifaddrs(), setsockopt(), and 
> socket(), but those will be fixed in the future, likely with changes to 
> the JDK itself.


More information about the net-dev mailing list