Most of these eventually turn the String into a URL, so using a URL directly should work?
jshell> URL u = new URL("http", "::1", 9002, "/") u ==> http://[::1]:9002/ jshell> URL u = new URL("http", InetAddress.getLoopbackAddress().getHostAddress(), 9002, "/") u ==> http://127.0.0.1:9002/ jshell> URL u = new URL("http", InetAddress.getLoopbackAddress().getHostName(), 9002, "/") u ==> http://localhost:9002/ On Thu, Mar 14, 2019 at 9:40 AM Chris Hegarty <chris.hega...@oracle.com> wrote: > It's just a hack, but enough to get me started so I can asses some of > what is needed to support running the tests on an IPv6-only environment. > > http://cr.openjdk.java.net/~chegar/ipv6-only-hack/ > > My /etc/hosts file has entries for `localhost` and the _host_, that > return `::1`. > > This is enough to get started, but it will run out of road quite soon. > And it will break some things. Let's work towards getting a better > solution. > > Also, we will need test library support for determining whether the > platform supports: 1) IPv4, or 2) IPv6, or 3) IPv4&IPv6. I filed 8220673 > [1] to tracks this. > > --- > > Regarding what to do with URL's in test. I tried a few different > approaches, I am leaning towards: > > String host = loopbackAddress.getHostAddress(); > if (host.contains(":")) > host = "[" + host + "]"; > > Since it: > 1) is relatively short and concise, and > 2) ensures, in many cases, that the client and server use the same > IP address, and > 3) clearly shows the actual IP protocol in use, e.g. > http://[0:0:0:0:0:0:0:1]:46009/zero/xxyy > > A sample of some tests that have been updated as above: > http://cr.openjdk.java.net/~chegar/8220575/webrev.0.1/ (not too bad!) > > -Chris. > > P.S. I ran into an implementation bug and filed, 8220663: "Incorrect > handling of IPv6 addresses in Socket(Proxy.HTTP)" - the fix is straight > forward. > > [1] https://bugs.openjdk.java.net/browse/JDK-8220673 >