diff options
author | jbachorik <none@none> | 2013-11-18 15:25:15 +0100 |
---|---|---|
committer | jbachorik <none@none> | 2013-11-18 15:25:15 +0100 |
commit | cba5c44080c89f55783f07447d325a9134efdf1a (patch) | |
tree | 30d852250d39f5fd8b3128c2b3a895cd471eb6e3 /test | |
parent | b797c7feec6c354e5aca37aa1f3dba17e2565b2f (diff) |
8027163: sun/management/jmxremote/bootstrap/CustomLauncherTest.java should be updated for jdk8 removal of solaris-32bit support
Reviewed-by: sla
Diffstat (limited to 'test')
-rw-r--r-- | test/lib/testlibrary/jdk/testlibrary/ProcessTools.java | 16 | ||||
-rw-r--r-- | test/sun/management/jmxremote/bootstrap/CustomLauncherTest.java | 26 | ||||
-rw-r--r-- | test/sun/management/jmxremote/bootstrap/LocalManagementTest.java | 14 | ||||
-rw-r--r-- | test/sun/management/jmxremote/bootstrap/solaris-amd64/launcher | bin | 0 -> 12056 bytes | |||
-rw-r--r-- | test/sun/management/jmxremote/bootstrap/solaris-i586/launcher | bin | 8176 -> 0 bytes | |||
-rw-r--r-- | test/sun/management/jmxremote/bootstrap/solaris-sparc/launcher | bin | 9708 -> 0 bytes | |||
-rw-r--r-- | test/sun/management/jmxremote/bootstrap/solaris-sparcv9/launcher | bin | 0 -> 11656 bytes |
7 files changed, 47 insertions, 9 deletions
diff --git a/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java b/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java index 6ed9f30d7..9f96baaef 100644 --- a/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java +++ b/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java @@ -32,6 +32,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collections; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.Phaser; @@ -131,6 +132,10 @@ public final class ProcessTools { phs.awaitAdvanceInterruptibly(0, timeout, unit); } } catch (TimeoutException | InterruptedException e) { + System.err.println("Failed to start a process (thread dump follows)"); + for(Map.Entry<Thread, StackTraceElement[]> s : Thread.getAllStackTraces().entrySet()) { + printStack(s.getKey(), s.getValue()); + } stdoutTask.cancel(true); stderrTask.cancel(true); throw e; @@ -250,4 +255,15 @@ public final class ProcessTools { return new ProcessBuilder(args.toArray(new String[args.size()])); } + private static void printStack(Thread t, StackTraceElement[] stack) { + System.out.println("\t" + t + + " stack: (length = " + stack.length + ")"); + if (t != null) { + for (StackTraceElement stack1 : stack) { + System.out.println("\t" + stack1); + } + System.out.println(); + } + } + } diff --git a/test/sun/management/jmxremote/bootstrap/CustomLauncherTest.java b/test/sun/management/jmxremote/bootstrap/CustomLauncherTest.java index 3d2036da7..99701aebb 100644 --- a/test/sun/management/jmxremote/bootstrap/CustomLauncherTest.java +++ b/test/sun/management/jmxremote/bootstrap/CustomLauncherTest.java @@ -25,7 +25,11 @@ import java.io.File; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; +import java.nio.file.LinkOption; import java.nio.file.Path; +import java.nio.file.attribute.PosixFilePermission; +import java.util.HashSet; +import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; @@ -36,7 +40,7 @@ import jdk.testlibrary.ProcessTools; * @bug 6434402 8004926 * @library /lib/testlibrary * @build TestManager TestApplication CustomLauncherTest - * @run main CustomLauncherTest + * @run main/othervm CustomLauncherTest * @author Jaroslav Bachorik */ public class CustomLauncherTest { @@ -67,6 +71,9 @@ public class CustomLauncherTest { ARCH = "amd64"; break; } + case "sparc": + ARCH = "sparcv9"; + break; default: { ARCH = osarch; } @@ -101,7 +108,10 @@ public class CustomLauncherTest { File.separator + "launcher"; final FileSystem FS = FileSystems.getDefault(); - final boolean hasLauncher = Files.isExecutable(FS.getPath(LAUNCHER)); + Path launcherPath = FS.getPath(LAUNCHER); + + final boolean hasLauncher = Files.isRegularFile(launcherPath, LinkOption.NOFOLLOW_LINKS)&& + Files.isReadable(launcherPath); if (!hasLauncher) { System.out.println("Launcher [" + LAUNCHER + "] does not exist. Skipping the test."); return; @@ -114,7 +124,17 @@ public class CustomLauncherTest { Process serverPrc = null, clientPrc = null; + final Set<PosixFilePermission> launcherOrigPerms = + Files.getPosixFilePermissions(launcherPath, LinkOption.NOFOLLOW_LINKS); try { + // It is impossible to store an executable file in the source control + // We need to set the executable flag here + if (!Files.isExecutable(launcherPath)) { + Set<PosixFilePermission> perms = new HashSet<>(launcherOrigPerms); + perms.add(PosixFilePermission.OWNER_EXECUTE); + Files.setPosixFilePermissions(launcherPath, perms); + } + System.out.println("Starting custom launcher:"); System.out.println("========================="); System.out.println(" launcher : " + LAUNCHER); @@ -177,6 +197,8 @@ public class CustomLauncherTest { throw new Error("Test failed"); } } finally { + // Let's restore the original launcher permissions + Files.setPosixFilePermissions(launcherPath, launcherOrigPerms); if (clientPrc != null) { clientPrc.destroy(); clientPrc.waitFor(); diff --git a/test/sun/management/jmxremote/bootstrap/LocalManagementTest.java b/test/sun/management/jmxremote/bootstrap/LocalManagementTest.java index dc3b5de73..a929855a8 100644 --- a/test/sun/management/jmxremote/bootstrap/LocalManagementTest.java +++ b/test/sun/management/jmxremote/bootstrap/LocalManagementTest.java @@ -42,7 +42,7 @@ import java.util.concurrent.atomic.AtomicReference; * TestManager will attempt a connection to the address obtained from * both agent properties and jvmstat buffer. * @build TestManager TestApplication - * @run main/timeout=300 LocalManagementTest + * @run main/othervm/timeout=300 LocalManagementTest */ import jdk.testlibrary.ProcessTools; @@ -77,14 +77,14 @@ public class LocalManagementTest { } private static boolean test1() throws Exception { - return doTest("-Dcom.sun.management.jmxremote"); + return doTest("1", "-Dcom.sun.management.jmxremote"); } private static boolean test2() throws Exception { Path agentPath = findAgent(); if (agentPath != null) { String agent = agentPath.toString(); - return doTest("-javaagent:" + agent); + return doTest("2", "-javaagent:" + agent); } else { return false; } @@ -94,7 +94,7 @@ public class LocalManagementTest { * no args (blank) - manager should attach and start agent */ private static boolean test3() throws Exception { - return doTest(null); + return doTest("3", null); } /** @@ -136,7 +136,7 @@ public class LocalManagementTest { * use DNS-only name service */ private static boolean test5() throws Exception { - return doTest("-Dsun.net.spi.namservice.provider.1=\"dns,sun\""); + return doTest("5", "-Dsun.net.spi.namservice.provider.1=\"dns,sun\""); } private static Path findAgent() { @@ -160,7 +160,7 @@ public class LocalManagementTest { return Files.isRegularFile(path) && Files.isReadable(path); } - private static boolean doTest(String arg) throws Exception { + private static boolean doTest(String testId, String arg) throws Exception { List<String> args = new ArrayList<>(); args.add("-cp"); args.add(TEST_CLASSES); @@ -179,7 +179,7 @@ public class LocalManagementTest { final AtomicReference<String> pid = new AtomicReference<>(); serverPrc = ProcessTools.startProcess( - "TestApplication", + "TestApplication(" + testId + ")", server, (String line) -> { if (line.startsWith("port:")) { diff --git a/test/sun/management/jmxremote/bootstrap/solaris-amd64/launcher b/test/sun/management/jmxremote/bootstrap/solaris-amd64/launcher Binary files differnew file mode 100644 index 000000000..ac766def9 --- /dev/null +++ b/test/sun/management/jmxremote/bootstrap/solaris-amd64/launcher diff --git a/test/sun/management/jmxremote/bootstrap/solaris-i586/launcher b/test/sun/management/jmxremote/bootstrap/solaris-i586/launcher Binary files differdeleted file mode 100644 index d68fb1446..000000000 --- a/test/sun/management/jmxremote/bootstrap/solaris-i586/launcher +++ /dev/null diff --git a/test/sun/management/jmxremote/bootstrap/solaris-sparc/launcher b/test/sun/management/jmxremote/bootstrap/solaris-sparc/launcher Binary files differdeleted file mode 100644 index c8d0417cb..000000000 --- a/test/sun/management/jmxremote/bootstrap/solaris-sparc/launcher +++ /dev/null diff --git a/test/sun/management/jmxremote/bootstrap/solaris-sparcv9/launcher b/test/sun/management/jmxremote/bootstrap/solaris-sparcv9/launcher Binary files differnew file mode 100644 index 000000000..8ac4061b5 --- /dev/null +++ b/test/sun/management/jmxremote/bootstrap/solaris-sparcv9/launcher |