diff -r a5ed9456c9be -r 0676e37a0b9c jdk/test/java/nio/channels/DatagramChannel/SocketOptionTests.java --- a/jdk/test/java/nio/channels/DatagramChannel/SocketOptionTests.java Tue Feb 23 09:49:04 2016 +0100 +++ b/jdk/test/java/nio/channels/DatagramChannel/SocketOptionTests.java Tue Feb 23 17:41:00 2016 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2016, 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 @@ -50,9 +50,17 @@ // check supported options Set> options = dc.supportedOptions(); - List> expected = Arrays.asList(SO_SNDBUF, SO_RCVBUF, - SO_REUSEADDR, SO_BROADCAST, IP_TOS, IP_MULTICAST_IF, IP_MULTICAST_TTL, - IP_MULTICAST_LOOP); + boolean reuseport = options.contains(SO_REUSEPORT); + List> expected; + if (reuseport) { + expected = Arrays.asList(SO_SNDBUF, SO_RCVBUF, + SO_REUSEADDR, SO_REUSEPORT, SO_BROADCAST, IP_TOS, IP_MULTICAST_IF, + IP_MULTICAST_TTL, IP_MULTICAST_LOOP); + } else { + expected = Arrays.asList(SO_SNDBUF, SO_RCVBUF, + SO_REUSEADDR, SO_BROADCAST, IP_TOS, IP_MULTICAST_IF, IP_MULTICAST_TTL, + IP_MULTICAST_LOOP); + } for (SocketOption opt: expected) { if (!options.contains(opt)) throw new RuntimeException(opt.name() + " should be supported"); @@ -83,7 +91,12 @@ checkOption(dc, SO_REUSEADDR, true); dc.setOption(SO_REUSEADDR, false); checkOption(dc, SO_REUSEADDR, false); - + if (reuseport) { + dc.setOption(SO_REUSEPORT, true); + checkOption(dc, SO_REUSEPORT, true); + dc.setOption(SO_REUSEPORT, false); + checkOption(dc, SO_REUSEPORT, false); + } // bind socket dc.bind(new InetSocketAddress(0));