< prev index next >
test/java/net/SocketPermission/SocketPermissionTest.java
Print this page
@@ -23,17 +23,21 @@
/*
* @test
* @bug 8047031
* @summary SocketPermission tests for legacy socket types
+ * @library /lib/testlibrary
+ * @build jdk.testlibrary.NetworkConfiguration
* @run testng/othervm SocketPermissionTest
*/
+
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.MulticastSocket;
+import java.net.NetworkInterface;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketPermission;
import java.security.AccessControlContext;
import java.security.AccessController;
@@ -42,15 +46,18 @@
import java.security.PermissionCollection;
import java.security.Permissions;
import java.security.Policy;
import java.security.PrivilegedExceptionAction;
import java.security.ProtectionDomain;
+import java.util.Optional;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+
import static org.testng.Assert.*;
+import static jdk.testlibrary.NetworkConfiguration.probe;
import static java.nio.charset.StandardCharsets.UTF_8;
public class SocketPermissionTest {
@BeforeMethod
@@ -208,16 +215,21 @@
String addr = "localhost:" + port;
AccessControlContext acc = getAccessControlContext(
new SocketPermission(addr, "listen,resolve"),
new SocketPermission("229.227.226.221", "connect,accept"));
- // Positive
+ // Positive ( requires a functional network interface )
+ Optional<NetworkInterface> onif = probe().ip4MulticastInterfaces().findFirst();
+ if (!onif.isPresent()) {
+ s.setNetworkInterface(onif.get());
+
AccessController.doPrivileged((PrivilegedExceptionAction<Void>) () -> {
s.joinGroup(group);
s.leaveGroup(group);
return null;
}, acc);
+ }
// Negative
try {
AccessController.doPrivileged((PrivilegedExceptionAction<Void>) () -> {
s.joinGroup(group);
< prev index next >