test/java/net/SocketOption/UnsupportedOptionsTest.java
Print this page
rev 14282 : 8044773: Refactor jdk.net API so that it can be moved out of the base module
Reviewed-by:
*** 19,64 ****
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
- import jdk.net.ExtendedSocketOptions;
-
import java.io.IOException;
import java.net.*;
/*
* @test
! * @bug 8143554
! * @run main UnsupportedOptionsTest
* @summary Test checks that UnsupportedOperationException for unsupported
* SOCKET_OPTIONS is thrown by both getOption() and setOption() methods.
*/
public class UnsupportedOptionsTest {
! private static final SocketOption[] SOCKET_OPTIONS = {
! StandardSocketOptions.IP_MULTICAST_IF,
! StandardSocketOptions.IP_MULTICAST_LOOP,
! StandardSocketOptions.IP_MULTICAST_TTL,
! StandardSocketOptions.IP_TOS,
! StandardSocketOptions.SO_BROADCAST,
! StandardSocketOptions.SO_KEEPALIVE,
! StandardSocketOptions.SO_LINGER,
! StandardSocketOptions.SO_RCVBUF,
! StandardSocketOptions.SO_REUSEADDR,
! StandardSocketOptions.SO_SNDBUF,
! StandardSocketOptions.TCP_NODELAY,
! ExtendedSocketOptions.SO_FLOW_SLA
! };
public static void main(String[] args) throws IOException {
Socket s = new Socket();
ServerSocket ss = new ServerSocket();
DatagramSocket ds = new DatagramSocket();
MulticastSocket ms = new MulticastSocket();
! for (SocketOption option : SOCKET_OPTIONS) {
if (!s.supportedOptions().contains(option)) {
testUnsupportedSocketOption(s, option);
}
if (!ss.supportedOptions().contains(option)) {
--- 19,78 ----
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.io.IOException;
+ import java.lang.reflect.Field;
import java.net.*;
+ import java.util.ArrayList;
+ import java.util.List;
/*
* @test
! * @bug 8143554 8044773
* @summary Test checks that UnsupportedOperationException for unsupported
* SOCKET_OPTIONS is thrown by both getOption() and setOption() methods.
+ * @run main UnsupportedOptionsTest
+ * @run main/othervm -Djdk.launcher.limitmods=java.base UnsupportedOptionsTest
*/
+
public class UnsupportedOptionsTest {
! private static final List<SocketOption<?>> socketOptions = new ArrayList<>();
!
! static {
! socketOptions.add(StandardSocketOptions.IP_MULTICAST_IF);
! socketOptions.add(StandardSocketOptions.IP_MULTICAST_LOOP);
! socketOptions.add(StandardSocketOptions.IP_MULTICAST_TTL);
! socketOptions.add(StandardSocketOptions.IP_TOS);
! socketOptions.add(StandardSocketOptions.SO_BROADCAST);
! socketOptions.add(StandardSocketOptions.SO_KEEPALIVE);
! socketOptions.add(StandardSocketOptions.SO_LINGER);
! socketOptions.add(StandardSocketOptions.SO_RCVBUF);
! socketOptions.add(StandardSocketOptions.SO_REUSEADDR);
! socketOptions.add(StandardSocketOptions.SO_SNDBUF);
! socketOptions.add(StandardSocketOptions.TCP_NODELAY);
!
! try {
! Class<?> c = Class.forName("jdk.net.ExtendedSocketOptions");
! Field field = c.getField("SO_FLOW_SLA");
! socketOptions.add((SocketOption<?>)field.get(null));
! } catch (ClassNotFoundException e) {
! // ignore, jdk.net module not present
! } catch (ReflectiveOperationException e) {
! throw new AssertionError(e);
! }
! }
public static void main(String[] args) throws IOException {
Socket s = new Socket();
ServerSocket ss = new ServerSocket();
DatagramSocket ds = new DatagramSocket();
MulticastSocket ms = new MulticastSocket();
! for (SocketOption option : socketOptions) {
if (!s.supportedOptions().contains(option)) {
testUnsupportedSocketOption(s, option);
}
if (!ss.supportedOptions().contains(option)) {