8242009: Review setting test.java/vm.opts in jcmd/jhsdb and debugger in serviceability tests
Reviewed-by: cjplummer
This commit is contained in:
parent
e686fb6bf6
commit
a726aca6de
test
hotspot/jtreg/serviceability
attach
sa
CDSJMapClstats.javaClhsdbDumpclass.javaClhsdbJstackXcompStress.javaClhsdbLauncher.javaDeadlockDetectionTest.javaJhsdbThreadInfoTest.javaTestHeapDumpForInvokeDynamic.javaTestJhsdbJstackLock.javaTestJhsdbJstackMixed.javaTestJmapCore.javaTestSysProps.java
jmap-hprof
sadebugd
tmtools/jstack
jdk/sun/tools
jcmd
jhsdb
jinfo
jmap
jps
jstack
jstat
jstatd
lib/jdk/test/lib
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -39,6 +39,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
import com.sun.tools.attach.VirtualMachine;
|
import com.sun.tools.attach.VirtualMachine;
|
||||||
import com.sun.tools.attach.AttachNotSupportedException;
|
import com.sun.tools.attach.AttachNotSupportedException;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.Asserts;
|
import jdk.test.lib.Asserts;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
@ -80,6 +81,7 @@ public class ConcAttachTest implements Runnable {
|
|||||||
|
|
||||||
private static void checkAttachListenerThread() throws InterruptedException, IOException {
|
private static void checkAttachListenerThread() throws InterruptedException, IOException {
|
||||||
JDKToolLauncher jcmd = JDKToolLauncher.createUsingTestJDK("jcmd");
|
JDKToolLauncher jcmd = JDKToolLauncher.createUsingTestJDK("jcmd");
|
||||||
|
jcmd.addVMArgs(Utils.getTestJavaOpts());
|
||||||
jcmd.addToolArg(strPID);
|
jcmd.addToolArg(strPID);
|
||||||
jcmd.addToolArg("Thread.print");
|
jcmd.addToolArg("Thread.print");
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -32,6 +32,7 @@
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
@ -40,6 +41,7 @@ public class RemovingUnixDomainSocketTest {
|
|||||||
|
|
||||||
private static void runJCmd(long pid) throws InterruptedException, IOException {
|
private static void runJCmd(long pid) throws InterruptedException, IOException {
|
||||||
JDKToolLauncher jcmd = JDKToolLauncher.createUsingTestJDK("jcmd");
|
JDKToolLauncher jcmd = JDKToolLauncher.createUsingTestJDK("jcmd");
|
||||||
|
jcmd.addVMArgs(Utils.getTestJavaOpts());
|
||||||
jcmd.addToolArg(Long.toString(pid));
|
jcmd.addToolArg(Long.toString(pid));
|
||||||
jcmd.addToolArg("VM.version");
|
jcmd.addToolArg("VM.version");
|
||||||
|
|
||||||
@ -53,7 +55,7 @@ public class RemovingUnixDomainSocketTest {
|
|||||||
System.out.println(out.getStdout());
|
System.out.println(out.getStdout());
|
||||||
System.err.println(out.getStderr());
|
System.err.println(out.getStderr());
|
||||||
|
|
||||||
out.stderrShouldBeEmpty();
|
out.stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String... args) throws Exception {
|
public static void main(String... args) throws Exception {
|
||||||
|
@ -30,9 +30,9 @@
|
|||||||
* @run main/othervm/timeout=2400 CDSJMapClstats
|
* @run main/othervm/timeout=2400 CDSJMapClstats
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.cds.CDSTestUtils;
|
import jdk.test.lib.cds.CDSTestUtils;
|
||||||
import jdk.test.lib.cds.CDSOptions;
|
import jdk.test.lib.cds.CDSOptions;
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
@ -46,6 +46,7 @@ public class CDSJMapClstats {
|
|||||||
private static void runClstats(long lingeredAppPid) throws Exception {
|
private static void runClstats(long lingeredAppPid) throws Exception {
|
||||||
|
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("jmap");
|
launcher.addToolArg("jmap");
|
||||||
launcher.addToolArg("--clstats");
|
launcher.addToolArg("--clstats");
|
||||||
launcher.addToolArg("--pid");
|
launcher.addToolArg("--pid");
|
||||||
|
@ -27,11 +27,10 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.JDKToolFinder;
|
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.SA.SATestUtils;
|
|
||||||
import jtreg.SkippedException;
|
import jtreg.SkippedException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -70,6 +69,7 @@ public class ClhsdbDumpclass {
|
|||||||
|
|
||||||
// Run javap on the generated class file to make sure it's valid.
|
// Run javap on the generated class file to make sure it's valid.
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("javap");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("javap");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg(APP_DOT_CLASSNAME);
|
launcher.addToolArg(APP_DOT_CLASSNAME);
|
||||||
System.out.println("> javap " + APP_DOT_CLASSNAME);
|
System.out.println("> javap " + APP_DOT_CLASSNAME);
|
||||||
List<String> cmdStringList = Arrays.asList(launcher.getCommand());
|
List<String> cmdStringList = Arrays.asList(launcher.getCommand());
|
||||||
|
@ -22,11 +22,8 @@
|
|||||||
* questions.
|
* questions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
@ -61,6 +58,7 @@ public class ClhsdbJstackXcompStress {
|
|||||||
for (int i = 0; i < MAX_ITERATIONS; i++) {
|
for (int i = 0; i < MAX_ITERATIONS; i++) {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher
|
JDKToolLauncher launcher = JDKToolLauncher
|
||||||
.createUsingTestJDK("jhsdb");
|
.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getFilteredTestJavaOpts("-Xcomp"));
|
||||||
launcher.addToolArg("jstack");
|
launcher.addToolArg("jstack");
|
||||||
launcher.addToolArg("--pid");
|
launcher.addToolArg("--pid");
|
||||||
launcher.addToolArg(Long.toString(app.getPid()));
|
launcher.addToolArg(Long.toString(app.getPid()));
|
||||||
@ -76,7 +74,7 @@ public class ClhsdbJstackXcompStress {
|
|||||||
System.err.println(out.getStderr());
|
System.err.println(out.getStderr());
|
||||||
}
|
}
|
||||||
|
|
||||||
out.stderrShouldBeEmpty(); // NPE's are reported on the err stream
|
out.stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
out.stdoutShouldNotContain("Error occurred during stack walking:");
|
out.stdoutShouldNotContain("Error occurred during stack walking:");
|
||||||
out.stdoutShouldContain(LingeredAppWithRecComputation.THREAD_NAME);
|
out.stdoutShouldContain(LingeredAppWithRecComputation.THREAD_NAME);
|
||||||
List<String> stdoutList = Arrays.asList(out.getStdout().split("\\R"));
|
List<String> stdoutList = Arrays.asList(out.getStdout().split("\\R"));
|
||||||
|
@ -25,10 +25,8 @@ import java.io.IOException;
|
|||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.Platform;
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.JDKToolFinder;
|
import jdk.test.lib.JDKToolFinder;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
@ -56,6 +54,7 @@ public class ClhsdbLauncher {
|
|||||||
private void attach(long lingeredAppPid)
|
private void attach(long lingeredAppPid)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("clhsdb");
|
launcher.addToolArg("clhsdb");
|
||||||
if (lingeredAppPid != -1) {
|
if (lingeredAppPid != -1) {
|
||||||
launcher.addToolArg("--pid=" + Long.toString(lingeredAppPid));
|
launcher.addToolArg("--pid=" + Long.toString(lingeredAppPid));
|
||||||
@ -75,6 +74,7 @@ public class ClhsdbLauncher {
|
|||||||
throws IOException {
|
throws IOException {
|
||||||
|
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("clhsdb");
|
launcher.addToolArg("clhsdb");
|
||||||
launcher.addToolArg("--core=" + coreFileName);
|
launcher.addToolArg("--core=" + coreFileName);
|
||||||
launcher.addToolArg("--exe=" + JDKToolFinder.getTestJDKTool("java"));
|
launcher.addToolArg("--exe=" + JDKToolFinder.getTestJDKTool("java"));
|
||||||
|
@ -31,8 +31,6 @@
|
|||||||
* @run main DeadlockDetectionTest
|
* @run main DeadlockDetectionTest
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
@ -51,6 +49,7 @@ public class DeadlockDetectionTest {
|
|||||||
|
|
||||||
private static OutputAnalyzer jstack(String... toolArgs) throws Exception {
|
private static OutputAnalyzer jstack(String... toolArgs) throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("jstack");
|
launcher.addToolArg("jstack");
|
||||||
if (toolArgs != null) {
|
if (toolArgs != null) {
|
||||||
for (String toolArg : toolArgs) {
|
for (String toolArg : toolArgs) {
|
||||||
|
@ -21,14 +21,8 @@
|
|||||||
* questions.
|
* questions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.Platform;
|
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.SA.SATestUtils;
|
import jdk.test.lib.SA.SATestUtils;
|
||||||
import jdk.test.lib.Utils;
|
import jdk.test.lib.Utils;
|
||||||
@ -50,6 +44,7 @@ public class JhsdbThreadInfoTest {
|
|||||||
System.out.println("Started LingeredApp with pid " + app.getPid());
|
System.out.println("Started LingeredApp with pid " + app.getPid());
|
||||||
|
|
||||||
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
jhsdbLauncher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
|
|
||||||
jhsdbLauncher.addToolArg("jstack");
|
jhsdbLauncher.addToolArg("jstack");
|
||||||
jhsdbLauncher.addToolArg("--pid");
|
jhsdbLauncher.addToolArg("--pid");
|
||||||
@ -73,17 +68,7 @@ public class JhsdbThreadInfoTest {
|
|||||||
out.shouldNotContain(" prio=0 ");
|
out.shouldNotContain(" prio=0 ");
|
||||||
out.shouldNotContain(" java.lang.Thread.State: UNKNOWN");
|
out.shouldNotContain(" java.lang.Thread.State: UNKNOWN");
|
||||||
|
|
||||||
// stderr should be empty except for VM warnings.
|
out.stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
if (!out.getStderr().isEmpty()) {
|
|
||||||
List<String> lines = Arrays.asList(out.getStderr().split("(\\r\\n|\\n|\\r)"));
|
|
||||||
Pattern p = Pattern.compile(".*VM warning.*");
|
|
||||||
for (String line : lines) {
|
|
||||||
Matcher m = p.matcher(line);
|
|
||||||
if (!m.matches()) {
|
|
||||||
throw new RuntimeException("Stderr has output other than VM warnings");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println("Test Completed");
|
System.out.println("Test Completed");
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
@ -21,28 +21,20 @@
|
|||||||
* questions.
|
* questions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
|
|
||||||
import sun.jvm.hotspot.HotSpotAgent;
|
|
||||||
import sun.jvm.hotspot.debugger.*;
|
|
||||||
|
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.Asserts;
|
import jdk.test.lib.Asserts;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.JDKToolFinder;
|
|
||||||
import jdk.test.lib.Platform;
|
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.SA.SATestUtils;
|
import jdk.test.lib.SA.SATestUtils;
|
||||||
import jdk.test.lib.Utils;
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.hprof.HprofParser;
|
|
||||||
import jdk.test.lib.hprof.parser.HprofReader;
|
import jdk.test.lib.hprof.parser.HprofReader;
|
||||||
import jdk.test.lib.hprof.parser.PositionDataInputStream;
|
import jdk.test.lib.hprof.parser.PositionDataInputStream;
|
||||||
import jdk.test.lib.hprof.model.Snapshot;
|
import jdk.test.lib.hprof.model.Snapshot;
|
||||||
@ -91,6 +83,7 @@ public class TestHeapDumpForInvokeDynamic {
|
|||||||
long lingeredAppPid) throws Exception {
|
long lingeredAppPid) throws Exception {
|
||||||
|
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("jmap");
|
launcher.addToolArg("jmap");
|
||||||
launcher.addToolArg("--binaryheap");
|
launcher.addToolArg("--binaryheap");
|
||||||
launcher.addToolArg("--dumpfile");
|
launcher.addToolArg("--dumpfile");
|
||||||
|
@ -21,20 +21,9 @@
|
|||||||
* questions.
|
* questions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.Asserts;
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.Platform;
|
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
|
||||||
import jdk.test.lib.SA.SATestUtils;
|
import jdk.test.lib.SA.SATestUtils;
|
||||||
import jdk.test.lib.Utils;
|
import jdk.test.lib.Utils;
|
||||||
|
|
||||||
@ -57,6 +46,7 @@ public class TestJhsdbJstackLock {
|
|||||||
System.out.println ("Started LingeredApp with pid " + app.getPid());
|
System.out.println ("Started LingeredApp with pid " + app.getPid());
|
||||||
|
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("jstack");
|
launcher.addToolArg("jstack");
|
||||||
launcher.addToolArg("--pid");
|
launcher.addToolArg("--pid");
|
||||||
launcher.addToolArg(Long.toString(app.getPid()));
|
launcher.addToolArg(Long.toString(app.getPid()));
|
||||||
@ -75,18 +65,7 @@ public class TestJhsdbJstackLock {
|
|||||||
out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Thread\\)$");
|
out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Thread\\)$");
|
||||||
out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Class for int\\)$");
|
out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Class for int\\)$");
|
||||||
|
|
||||||
// stderr should be empty except for VM warnings.
|
out.stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
if (!out.getStderr().isEmpty()) {
|
|
||||||
List<String> lines = Arrays.asList(out.getStderr().split("(\\r\\n|\\n|\\r)"));
|
|
||||||
Pattern p = Pattern.compile(".*VM warning.*");
|
|
||||||
for (String line : lines) {
|
|
||||||
Matcher m = p.matcher(line);
|
|
||||||
if (!m.matches()) {
|
|
||||||
throw new RuntimeException("Stderr has output other than VM warnings");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
System.out.println("Test Completed");
|
System.out.println("Test Completed");
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -132,6 +132,7 @@ public class TestJhsdbJstackMixed {
|
|||||||
for (int i = 0; i < MAX_ITERATIONS; i++) {
|
for (int i = 0; i < MAX_ITERATIONS; i++) {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher
|
JDKToolLauncher launcher = JDKToolLauncher
|
||||||
.createUsingTestJDK("jhsdb");
|
.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("jstack");
|
launcher.addToolArg("jstack");
|
||||||
launcher.addToolArg("--mixed");
|
launcher.addToolArg("--mixed");
|
||||||
launcher.addToolArg("--pid");
|
launcher.addToolArg("--pid");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -120,6 +120,7 @@ public class TestJmapCore {
|
|||||||
|
|
||||||
File dumpFile = new File("heap.hprof");
|
File dumpFile = new File("heap.hprof");
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("jmap");
|
launcher.addToolArg("jmap");
|
||||||
launcher.addToolArg("--binaryheap");
|
launcher.addToolArg("--binaryheap");
|
||||||
launcher.addToolArg("--dumpfile=" + dumpFile);
|
launcher.addToolArg("--dumpfile=" + dumpFile);
|
||||||
|
@ -21,10 +21,10 @@
|
|||||||
* questions.
|
* questions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.Platform;
|
import jdk.test.lib.Platform;
|
||||||
@ -58,7 +58,9 @@ public class TestSysProps {
|
|||||||
public static void countProps(String[] propLines, int expectedCount, String cmdName) {
|
public static void countProps(String[] propLines, int expectedCount, String cmdName) {
|
||||||
int numProps = 0;
|
int numProps = 0;
|
||||||
for (String propLine : propLines) {
|
for (String propLine : propLines) {
|
||||||
if (propLine.indexOf("=") != -1) {
|
// Ignore the debug output lines (they start with '[' and printed
|
||||||
|
// in the output when the test is run with -Xlog VM option).
|
||||||
|
if (!propLine.startsWith("[") && propLine.indexOf("=") != -1) {
|
||||||
numProps++;
|
numProps++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -79,6 +81,7 @@ public class TestSysProps {
|
|||||||
// Get properties using the SA version of jinfo
|
// Get properties using the SA version of jinfo
|
||||||
|
|
||||||
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
jhsdbLauncher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
jhsdbLauncher.addToolArg("jinfo");
|
jhsdbLauncher.addToolArg("jinfo");
|
||||||
jhsdbLauncher.addToolArg("--sysprops");
|
jhsdbLauncher.addToolArg("--sysprops");
|
||||||
jhsdbLauncher.addToolArg("--pid");
|
jhsdbLauncher.addToolArg("--pid");
|
||||||
@ -99,6 +102,7 @@ public class TestSysProps {
|
|||||||
// Get the properties using the Attach API version of jinfo
|
// Get the properties using the Attach API version of jinfo
|
||||||
|
|
||||||
JDKToolLauncher jinfoLauncher = JDKToolLauncher.createUsingTestJDK("jinfo");
|
JDKToolLauncher jinfoLauncher = JDKToolLauncher.createUsingTestJDK("jinfo");
|
||||||
|
jinfoLauncher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
jinfoLauncher.addToolArg("-sysprops");
|
jinfoLauncher.addToolArg("-sysprops");
|
||||||
jinfoLauncher.addToolArg(Long.toString(app.getPid()));
|
jinfoLauncher.addToolArg(Long.toString(app.getPid()));
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ import java.util.Scanner;
|
|||||||
|
|
||||||
import jdk.test.lib.Asserts;
|
import jdk.test.lib.Asserts;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.Platform;
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
import jdk.test.lib.SA.SATestUtils;
|
import jdk.test.lib.SA.SATestUtils;
|
||||||
@ -98,6 +98,7 @@ public class JMapHProfLargeHeapTest {
|
|||||||
|
|
||||||
JDKToolLauncher jMapLauncher = JDKToolLauncher
|
JDKToolLauncher jMapLauncher = JDKToolLauncher
|
||||||
.createUsingTestJDK("jhsdb");
|
.createUsingTestJDK("jhsdb");
|
||||||
|
jMapLauncher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
jMapLauncher.addToolArg("jmap");
|
jMapLauncher.addToolArg("jmap");
|
||||||
jMapLauncher.addToolArg("--binaryheap");
|
jMapLauncher.addToolArg("--binaryheap");
|
||||||
jMapLauncher.addToolArg("--pid");
|
jMapLauncher.addToolArg("--pid");
|
||||||
|
@ -37,6 +37,7 @@ import java.io.IOException;
|
|||||||
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.SA.SATestUtils;
|
import jdk.test.lib.SA.SATestUtils;
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
|
|
||||||
@ -45,6 +46,7 @@ public class DebugdConnectTest {
|
|||||||
|
|
||||||
private static OutputAnalyzer runJHSDB(String command, String id) throws IOException, InterruptedException {
|
private static OutputAnalyzer runJHSDB(String command, String id) throws IOException, InterruptedException {
|
||||||
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
jhsdbLauncher.addVMArgs(Utils.getFilteredTestJavaOpts("-Xcomp"));
|
||||||
jhsdbLauncher.addToolArg(command);
|
jhsdbLauncher.addToolArg(command);
|
||||||
jhsdbLauncher.addToolArg("--connect");
|
jhsdbLauncher.addToolArg("--connect");
|
||||||
if (id != null) {
|
if (id != null) {
|
||||||
@ -68,7 +70,7 @@ public class DebugdConnectTest {
|
|||||||
OutputAnalyzer out = runJHSDB("jstack", id);
|
OutputAnalyzer out = runJHSDB("jstack", id);
|
||||||
|
|
||||||
out.shouldContain("LingeredApp");
|
out.shouldContain("LingeredApp");
|
||||||
out.stderrShouldBeEmpty();
|
out.stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
out.shouldHaveExitValue(0);
|
out.shouldHaveExitValue(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,7 +78,7 @@ public class DebugdConnectTest {
|
|||||||
OutputAnalyzer out = runJHSDB("jmap", id);
|
OutputAnalyzer out = runJHSDB("jmap", id);
|
||||||
|
|
||||||
out.shouldContain("JVM version is");
|
out.shouldContain("JVM version is");
|
||||||
out.stderrShouldBeEmpty();
|
out.stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
out.shouldHaveExitValue(0);
|
out.shouldHaveExitValue(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,7 +86,7 @@ public class DebugdConnectTest {
|
|||||||
OutputAnalyzer out = runJHSDB("jinfo", id);
|
OutputAnalyzer out = runJHSDB("jinfo", id);
|
||||||
|
|
||||||
out.shouldContain("Java System Properties:");
|
out.shouldContain("Java System Properties:");
|
||||||
out.stderrShouldBeEmpty();
|
out.stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
out.shouldHaveExitValue(0);
|
out.shouldHaveExitValue(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,7 +94,7 @@ public class DebugdConnectTest {
|
|||||||
OutputAnalyzer out = runJHSDB("jsnap", id);
|
OutputAnalyzer out = runJHSDB("jsnap", id);
|
||||||
|
|
||||||
out.shouldContain("java.vm.name=");
|
out.shouldContain("java.vm.name=");
|
||||||
out.stderrShouldBeEmpty();
|
out.stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
out.shouldHaveExitValue(0);
|
out.shouldHaveExitValue(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -128,5 +130,4 @@ public class DebugdConnectTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -26,6 +26,7 @@ import java.io.InputStreamReader;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
|
|
||||||
|
|
||||||
public class DebugdUtils {
|
public class DebugdUtils {
|
||||||
@ -43,6 +44,7 @@ public class DebugdUtils {
|
|||||||
|
|
||||||
public void attach(long pid) throws IOException {
|
public void attach(long pid) throws IOException {
|
||||||
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
jhsdbLauncher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
jhsdbLauncher.addToolArg("debugd");
|
jhsdbLauncher.addToolArg("debugd");
|
||||||
jhsdbLauncher.addToolArg("--pid");
|
jhsdbLauncher.addToolArg("--pid");
|
||||||
jhsdbLauncher.addToolArg(Long.toString(pid));
|
jhsdbLauncher.addToolArg(Long.toString(pid));
|
||||||
|
@ -94,6 +94,7 @@ public class SADebugDTest {
|
|||||||
testResult = false;
|
testResult = false;
|
||||||
portInUse = false;
|
portInUse = false;
|
||||||
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher jhsdbLauncher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
jhsdbLauncher.addVMArgs(Utils.getFilteredTestJavaOpts("-Xcomp"));
|
||||||
jhsdbLauncher.addToolArg("debugd");
|
jhsdbLauncher.addToolArg("debugd");
|
||||||
jhsdbLauncher.addToolArg("--pid");
|
jhsdbLauncher.addToolArg("--pid");
|
||||||
jhsdbLauncher.addToolArg(Long.toString(app.getPid()));
|
jhsdbLauncher.addToolArg(Long.toString(app.getPid()));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -69,6 +69,7 @@ public class JstackThreadTest {
|
|||||||
thread.start();
|
thread.start();
|
||||||
ProcessBuilder processBuilder = new ProcessBuilder();
|
ProcessBuilder processBuilder = new ProcessBuilder();
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstack");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstack");
|
||||||
|
launcher.addVMArgs(jdk.test.lib.Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg("-l");
|
launcher.addToolArg("-l");
|
||||||
launcher.addToolArg(Long.toString(ProcessTools.getProcessId()));
|
launcher.addToolArg(Long.toString(ProcessTools.getProcessId()));
|
||||||
processBuilder.command(launcher.getCommand());
|
processBuilder.command(launcher.getCommand());
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
@ -95,6 +96,7 @@ public final class JcmdBase {
|
|||||||
private static final OutputAnalyzer jcmd(boolean requestToCurrentProcess,
|
private static final OutputAnalyzer jcmd(boolean requestToCurrentProcess,
|
||||||
String[] vmArgs, String[] jcmdArgs) throws Exception {
|
String[] vmArgs, String[] jcmdArgs) throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jcmd");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jcmd");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
if (vmArgs != null) {
|
if (vmArgs != null) {
|
||||||
for (String vmArg : vmArgs) {
|
for (String vmArg : vmArgs) {
|
||||||
launcher.addVMArg(vmArg);
|
launcher.addVMArg(vmArg);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -25,6 +25,7 @@ import java.util.Arrays;
|
|||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
@ -48,6 +49,7 @@ public class JcmdOutputEncodingTest {
|
|||||||
Thread.currentThread().setName(marker);
|
Thread.currentThread().setName(marker);
|
||||||
|
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jcmd");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jcmd");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addVMArg("-Dfile.encoding=" + cs);
|
launcher.addVMArg("-Dfile.encoding=" + cs);
|
||||||
launcher.addToolArg(Long.toString(ProcessTools.getProcessId()));
|
launcher.addToolArg(Long.toString(ProcessTools.getProcessId()));
|
||||||
launcher.addToolArg("Thread.print");
|
launcher.addToolArg("Thread.print");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -90,7 +90,7 @@ public class TestJcmdDefaults {
|
|||||||
* @param output The generated output from the jcmd.
|
* @param output The generated output from the jcmd.
|
||||||
*/
|
*/
|
||||||
private static void matchListedProcesses(OutputAnalyzer output) {
|
private static void matchListedProcesses(OutputAnalyzer output) {
|
||||||
output.shouldMatchByLine(JCMD_LIST_REGEX);
|
output.shouldMatchByLineIgnoreVMWarnings(JCMD_LIST_REGEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void verifyOutputAgainstFile(OutputAnalyzer output) throws IOException {
|
private static void verifyOutputAgainstFile(OutputAnalyzer output) throws IOException {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -152,7 +152,7 @@ public class TestJcmdSanity {
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private static void matchPerfCounters(OutputAnalyzer output) {
|
private static void matchPerfCounters(OutputAnalyzer output) {
|
||||||
output.shouldMatchByLineFrom(PERF_COUNTER_REGEX,
|
output.shouldMatchByLineIgnoreVMWarnings(PERF_COUNTER_REGEX, null,
|
||||||
PERF_COUNTER_REGEX);
|
PERF_COUNTER_REGEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ public class BasicLauncherTest {
|
|||||||
else {
|
else {
|
||||||
launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
}
|
}
|
||||||
|
launcher.addVMArgs(Utils.getFilteredTestJavaOpts("-Xcomp"));
|
||||||
return launcher;
|
return launcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ import java.io.File;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
import jdk.test.lib.hprof.parser.HprofReader;
|
import jdk.test.lib.hprof.parser.HprofReader;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
@ -65,6 +66,7 @@ public class HeapDumpTest {
|
|||||||
System.out.println(theApp.\u00CB);
|
System.out.println(theApp.\u00CB);
|
||||||
System.out.println("Starting " + toolArgs.get(0) + " against " + theApp.getPid());
|
System.out.println("Starting " + toolArgs.get(0) + " against " + theApp.getPid());
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getFilteredTestJavaOpts("-Xcomp"));
|
||||||
|
|
||||||
for (String cmd : toolArgs) {
|
for (String cmd : toolArgs) {
|
||||||
launcher.addToolArg(cmd);
|
launcher.addToolArg(cmd);
|
||||||
|
@ -38,6 +38,7 @@ import java.util.List;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.hprof.parser.HprofReader;
|
import jdk.test.lib.hprof.parser.HprofReader;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
import jdk.test.lib.JDKToolFinder;
|
import jdk.test.lib.JDKToolFinder;
|
||||||
@ -61,6 +62,7 @@ public class JShellHeapDumpTest {
|
|||||||
|
|
||||||
System.out.println("Starting " + toolArgs.get(0) + " against " + jShellPID);
|
System.out.println("Starting " + toolArgs.get(0) + " against " + jShellPID);
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
|
||||||
|
launcher.addVMArgs(Utils.getFilteredTestJavaOpts("-Xcomp"));
|
||||||
|
|
||||||
for (String cmd : toolArgs) {
|
for (String cmd : toolArgs) {
|
||||||
launcher.addToolArg(cmd);
|
launcher.addToolArg(cmd);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -24,6 +24,7 @@
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
|
|
||||||
@ -70,6 +71,7 @@ public class BasicJInfoTest {
|
|||||||
|
|
||||||
private static OutputAnalyzer jinfo(String... toolArgs) throws Exception {
|
private static OutputAnalyzer jinfo(String... toolArgs) throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jinfo");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jinfo");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
if (toolArgs != null) {
|
if (toolArgs != null) {
|
||||||
for (String toolArg : toolArgs) {
|
for (String toolArg : toolArgs) {
|
||||||
launcher.addToolArg(toolArg);
|
launcher.addToolArg(toolArg);
|
||||||
|
@ -29,6 +29,7 @@ import java.util.regex.Pattern;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
import jdk.test.lib.apps.LingeredApp;
|
import jdk.test.lib.apps.LingeredApp;
|
||||||
@ -114,6 +115,7 @@ public class JInfoTest {
|
|||||||
|
|
||||||
private static OutputAnalyzer jinfo(String... toolArgs) throws Exception {
|
private static OutputAnalyzer jinfo(String... toolArgs) throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jinfo");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jinfo");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
if (toolArgs != null) {
|
if (toolArgs != null) {
|
||||||
for (String toolArg : toolArgs) {
|
for (String toolArg : toolArgs) {
|
||||||
launcher.addToolArg(toolArg);
|
launcher.addToolArg(toolArg);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -28,6 +28,7 @@ import java.io.File;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.hprof.HprofParser;
|
import jdk.test.lib.hprof.HprofParser;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
@ -179,6 +180,7 @@ public class BasicJMapTest {
|
|||||||
|
|
||||||
private static OutputAnalyzer jmap(String... toolArgs) throws Exception {
|
private static OutputAnalyzer jmap(String... toolArgs) throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jmap");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jmap");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
if (toolArgs != null) {
|
if (toolArgs != null) {
|
||||||
for (String toolArg : toolArgs) {
|
for (String toolArg : toolArgs) {
|
||||||
launcher.addToolArg(toolArg);
|
launcher.addToolArg(toolArg);
|
||||||
|
@ -152,6 +152,7 @@ public final class JpsHelper {
|
|||||||
*/
|
*/
|
||||||
public static OutputAnalyzer jps(List<String> vmArgs, List<String> toolArgs) throws Exception {
|
public static OutputAnalyzer jps(List<String> vmArgs, List<String> toolArgs) throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jps");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jps");
|
||||||
|
launcher.addVMArgs(Utils.getFilteredTestJavaOpts("-XX:+UsePerfData"));
|
||||||
launcher.addVMArg("-XX:+UsePerfData");
|
launcher.addVMArg("-XX:+UsePerfData");
|
||||||
if (vmArgs != null) {
|
if (vmArgs != null) {
|
||||||
for (String vmArg : vmArgs) {
|
for (String vmArg : vmArgs) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -25,6 +25,7 @@ import java.util.Arrays;
|
|||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
@ -70,6 +71,7 @@ public class BasicJStackTest {
|
|||||||
Charset cs = StandardCharsets.UTF_8;
|
Charset cs = StandardCharsets.UTF_8;
|
||||||
Thread.currentThread().setName(marker);
|
Thread.currentThread().setName(marker);
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstack");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstack");
|
||||||
|
launcher.addVMArgs(Utils.getFilteredTestJavaOpts("-XX:+UsePerfData"));
|
||||||
launcher.addVMArg("-XX:+UsePerfData");
|
launcher.addVMArg("-XX:+UsePerfData");
|
||||||
launcher.addVMArg("-Dfile.encoding=" + cs);
|
launcher.addVMArg("-Dfile.encoding=" + cs);
|
||||||
if (toolArgs != null) {
|
if (toolArgs != null) {
|
||||||
|
@ -50,6 +50,7 @@ public class DeadlockDetectionTest {
|
|||||||
|
|
||||||
private static OutputAnalyzer jstack(String... toolArgs) throws Exception {
|
private static OutputAnalyzer jstack(String... toolArgs) throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstack");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstack");
|
||||||
|
launcher.addVMArgs(Utils.getFilteredTestJavaOpts("-XX:+UsePerfData"));
|
||||||
launcher.addVMArg("-XX:+UsePerfData");
|
launcher.addVMArg("-XX:+UsePerfData");
|
||||||
if (toolArgs != null) {
|
if (toolArgs != null) {
|
||||||
for (String toolArg : toolArgs) {
|
for (String toolArg : toolArgs) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -34,6 +34,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@ -87,6 +88,7 @@ public class JStatInterval {
|
|||||||
|
|
||||||
String pidStr = String.valueOf(app.pid());
|
String pidStr = String.valueOf(app.pid());
|
||||||
JDKToolLauncher l = JDKToolLauncher.createUsingTestJDK("jstat");
|
JDKToolLauncher l = JDKToolLauncher.createUsingTestJDK("jstat");
|
||||||
|
l.addVMArgs(Utils.getTestJavaOpts());
|
||||||
l.addToolArg("-compiler");
|
l.addToolArg("-compiler");
|
||||||
l.addToolArg(pidStr);
|
l.addToolArg(pidStr);
|
||||||
l.addToolArg("100");
|
l.addToolArg("100");
|
||||||
|
@ -27,6 +27,7 @@ import java.rmi.RemoteException;
|
|||||||
import java.rmi.registry.LocateRegistry;
|
import java.rmi.registry.LocateRegistry;
|
||||||
import java.rmi.registry.Registry;
|
import java.rmi.registry.Registry;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static jdk.test.lib.Asserts.*;
|
import static jdk.test.lib.Asserts.*;
|
||||||
import jdk.test.lib.Utils;
|
import jdk.test.lib.Utils;
|
||||||
@ -127,6 +128,7 @@ public final class JstatdTest {
|
|||||||
*/
|
*/
|
||||||
private OutputAnalyzer runJps() throws Exception {
|
private OutputAnalyzer runJps() throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jps");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jps");
|
||||||
|
launcher.addVMArgs(Utils.getFilteredTestJavaOpts("-XX:+UsePerfData"));
|
||||||
launcher.addVMArg("-XX:+UsePerfData");
|
launcher.addVMArg("-XX:+UsePerfData");
|
||||||
launcher.addToolArg(getDestination());
|
launcher.addToolArg(getDestination());
|
||||||
|
|
||||||
@ -156,7 +158,7 @@ public final class JstatdTest {
|
|||||||
assertFalse(output.getOutput().isEmpty(), "Output should not be empty");
|
assertFalse(output.getOutput().isEmpty(), "Output should not be empty");
|
||||||
|
|
||||||
boolean foundFirstLineWithPid = false;
|
boolean foundFirstLineWithPid = false;
|
||||||
String[] lines = output.getOutput().split(Utils.NEW_LINE);
|
List<String> lines = output.asLinesWithoutVMWarnings();
|
||||||
for (String line : lines) {
|
for (String line : lines) {
|
||||||
if (!foundFirstLineWithPid) {
|
if (!foundFirstLineWithPid) {
|
||||||
foundFirstLineWithPid = line.matches(JPS_OUTPUT_REGEX);
|
foundFirstLineWithPid = line.matches(JPS_OUTPUT_REGEX);
|
||||||
@ -353,9 +355,7 @@ public final class JstatdTest {
|
|||||||
|
|
||||||
// Verify output from jstatd
|
// Verify output from jstatd
|
||||||
OutputAnalyzer output = jstatdThread.getOutput();
|
OutputAnalyzer output = jstatdThread.getOutput();
|
||||||
assertTrue(output.getOutput().isEmpty(),
|
output.shouldBeEmptyIgnoreVMWarnings();
|
||||||
"jstatd should get an empty output, got: "
|
|
||||||
+ Utils.NEW_LINE + output.getOutput());
|
|
||||||
assertNotEquals(output.getExitValue(), 0,
|
assertNotEquals(output.getExitValue(), 0,
|
||||||
"jstatd process exited with unexpected exit code");
|
"jstatd process exited with unexpected exit code");
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import jdk.test.lib.JDKToolLauncher;
|
import jdk.test.lib.JDKToolLauncher;
|
||||||
|
import jdk.test.lib.Utils;
|
||||||
import jdk.test.lib.process.OutputAnalyzer;
|
import jdk.test.lib.process.OutputAnalyzer;
|
||||||
import jdk.test.lib.process.ProcessTools;
|
import jdk.test.lib.process.ProcessTools;
|
||||||
|
|
||||||
@ -42,6 +43,7 @@ public class TestJstatdUsage {
|
|||||||
|
|
||||||
private static void testUsage(String option) throws Exception {
|
private static void testUsage(String option) throws Exception {
|
||||||
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstatd");
|
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstatd");
|
||||||
|
launcher.addVMArgs(Utils.getTestJavaOpts());
|
||||||
launcher.addToolArg(option);
|
launcher.addToolArg(option);
|
||||||
ProcessBuilder processBuilder = new ProcessBuilder(launcher.getCommand());
|
ProcessBuilder processBuilder = new ProcessBuilder(launcher.getCommand());
|
||||||
OutputAnalyzer output = ProcessTools.executeProcess(processBuilder);
|
OutputAnalyzer output = ProcessTools.executeProcess(processBuilder);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -25,6 +25,7 @@ package jdk.test.lib;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A utility for constructing command lines for starting JDK tool processes.
|
* A utility for constructing command lines for starting JDK tool processes.
|
||||||
@ -102,6 +103,24 @@ public class JDKToolLauncher {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds arguments to the JVM running the tool.
|
||||||
|
*
|
||||||
|
* The JVM arguments are passed to the underlying JVM running the tool.
|
||||||
|
* Arguments will automatically be prepended with "-J".
|
||||||
|
*
|
||||||
|
* Any platform specific arguments required for running the tool are
|
||||||
|
* automatically added.
|
||||||
|
*
|
||||||
|
* @param args
|
||||||
|
* The arguments to VM running the tool
|
||||||
|
* @return The JDKToolLauncher instance
|
||||||
|
*/
|
||||||
|
public JDKToolLauncher addVMArgs(String[] args) {
|
||||||
|
Stream.of(args).forEach(vmArgs::add);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds an argument to the tool.
|
* Adds an argument to the tool.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -38,6 +38,15 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
public final class OutputAnalyzer {
|
public final class OutputAnalyzer {
|
||||||
|
|
||||||
|
private static final String JVM_WARNING_MSG = ".* VM warning:.*";
|
||||||
|
private static final String JAVA_VERSION_MSG = "^java version .*|^Java\\(TM\\).*|^Java HotSpot\\(TM\\).*|" +
|
||||||
|
"^openjdk version .*|^OpenJDK .*";
|
||||||
|
private static final String JAVA_WARNINGS_AND_VERSION = JVM_WARNING_MSG + "|" + JAVA_VERSION_MSG;
|
||||||
|
private static final Pattern JAVA_WARNINGS_AND_VERSION_PATTERN =
|
||||||
|
Pattern.compile(JAVA_WARNINGS_AND_VERSION.replaceAll("\\|", "\\\\R|") + "\\R",
|
||||||
|
Pattern.MULTILINE);
|
||||||
|
|
||||||
|
|
||||||
private final OutputBuffer buffer;
|
private final OutputBuffer buffer;
|
||||||
/**
|
/**
|
||||||
* Create an OutputAnalyzer, a utility class for verifying output and exit
|
* Create an OutputAnalyzer, a utility class for verifying output and exit
|
||||||
@ -132,13 +141,13 @@ public final class OutputAnalyzer {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Verify that the stderr contents of output buffer is empty,
|
* Verify that the stderr contents of output buffer is empty,
|
||||||
* after filtering out the Hotspot warning messages
|
* after filtering out the HotSpot warning and Java version messages.
|
||||||
*
|
*
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException
|
||||||
* If stderr was not empty
|
* If stderr was not empty
|
||||||
*/
|
*/
|
||||||
public OutputAnalyzer stderrShouldBeEmptyIgnoreVMWarnings() {
|
public OutputAnalyzer stderrShouldBeEmptyIgnoreVMWarnings() {
|
||||||
if (!getStderr().replaceAll(jvmwarningmsg + "\\R", "").isEmpty()) {
|
if (!JAVA_WARNINGS_AND_VERSION_PATTERN.matcher(getStderr()).replaceAll("").isEmpty()) {
|
||||||
reportDiagnosticSummary();
|
reportDiagnosticSummary();
|
||||||
throw new RuntimeException("stderr was not empty");
|
throw new RuntimeException("stderr was not empty");
|
||||||
}
|
}
|
||||||
@ -561,12 +570,15 @@ public final class OutputAnalyzer {
|
|||||||
return Arrays.asList(buffer.split("\\R"));
|
return Arrays.asList(buffer.split("\\R"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> asLinesWithoutVMWarnings(String buffer) {
|
||||||
private static final String jvmwarningmsg = ".* VM warning:.*";
|
return Arrays.stream(buffer.split("\\R"))
|
||||||
|
.filter(Pattern.compile(JAVA_WARNINGS_AND_VERSION).asPredicate().negate())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verifies that the stdout and stderr contents of output buffer are empty, after
|
* Verifies that the stdout and stderr contents of output buffer are empty, after
|
||||||
* filtering out the HotSpot warning messages.
|
* filtering out the HotSpot warning and Java version messages.
|
||||||
*
|
*
|
||||||
* @throws RuntimeException If the stdout and stderr are not empty
|
* @throws RuntimeException If the stdout and stderr are not empty
|
||||||
*/
|
*/
|
||||||
@ -577,22 +589,19 @@ public final class OutputAnalyzer {
|
|||||||
reportDiagnosticSummary();
|
reportDiagnosticSummary();
|
||||||
throw new RuntimeException("stdout was not empty");
|
throw new RuntimeException("stdout was not empty");
|
||||||
}
|
}
|
||||||
if (!stderr.replaceAll(jvmwarningmsg + "\\R", "").isEmpty()) {
|
stderrShouldBeEmptyIgnoreVMWarnings();
|
||||||
reportDiagnosticSummary();
|
|
||||||
throw new RuntimeException("stderr was not empty");
|
|
||||||
}
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verify that the stderr contents of output buffer matches the pattern,
|
* Verify that the stderr contents of output buffer matches the pattern,
|
||||||
* after filtering out the Hotespot warning messages
|
* after filtering out the HotSpot warning and Java version messages.
|
||||||
*
|
*
|
||||||
* @param pattern
|
* @param pattern
|
||||||
* @throws RuntimeException If the pattern was not found
|
* @throws RuntimeException If the pattern was not found
|
||||||
*/
|
*/
|
||||||
public OutputAnalyzer stderrShouldMatchIgnoreVMWarnings(String pattern) {
|
public OutputAnalyzer stderrShouldMatchIgnoreVMWarnings(String pattern) {
|
||||||
String stderr = getStderr().replaceAll(jvmwarningmsg + "\\R", "");
|
String stderr = JAVA_WARNINGS_AND_VERSION_PATTERN.matcher(getStderr()).replaceAll("");
|
||||||
Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr);
|
Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr);
|
||||||
if (!matcher.find()) {
|
if (!matcher.find()) {
|
||||||
reportDiagnosticSummary();
|
reportDiagnosticSummary();
|
||||||
@ -604,16 +613,28 @@ public final class OutputAnalyzer {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the contents of the output buffer (stdout and stderr), without those
|
* Returns the contents of the output buffer (stdout and stderr), without those
|
||||||
* JVM warning msgs, as list of strings. Output is split by newlines.
|
* JVM warning and Java version messages, as list of strings. Output is split
|
||||||
|
* by newlines.
|
||||||
*
|
*
|
||||||
* @return Contents of the output buffer as list of strings
|
* @return Contents of the output buffer as list of strings
|
||||||
*/
|
*/
|
||||||
public List<String> asLinesWithoutVMWarnings() {
|
public List<String> asLinesWithoutVMWarnings() {
|
||||||
return Arrays.stream(getOutput().split("\\R"))
|
return Arrays.stream(getOutput().split("\\R"))
|
||||||
.filter(Pattern.compile(jvmwarningmsg).asPredicate().negate())
|
.filter(Pattern.compile(JAVA_WARNINGS_AND_VERSION).asPredicate().negate())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify that the stdout and stderr contents of output buffer match the
|
||||||
|
* {@code pattern} line by line ignoring HotSpot warning and version messages.
|
||||||
|
*
|
||||||
|
* @param pattern
|
||||||
|
* Matching pattern
|
||||||
|
*/
|
||||||
|
public OutputAnalyzer shouldMatchByLineIgnoreVMWarnings(String pattern) {
|
||||||
|
return shouldMatchByLine(getOutput(), null, null, pattern, true);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see #shouldMatchByLine(String, String, String)
|
* @see #shouldMatchByLine(String, String, String)
|
||||||
*/
|
*/
|
||||||
@ -657,7 +678,25 @@ public final class OutputAnalyzer {
|
|||||||
* Matching pattern
|
* Matching pattern
|
||||||
*/
|
*/
|
||||||
public OutputAnalyzer shouldMatchByLine(String from, String to, String pattern) {
|
public OutputAnalyzer shouldMatchByLine(String from, String to, String pattern) {
|
||||||
return shouldMatchByLine(getOutput(), from, to, pattern);
|
return shouldMatchByLine(getOutput(), from, to, pattern, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify that the stdout and stderr contents of output buffer match the
|
||||||
|
* {@code pattern} line by line ignoring HotSpot warnings and version messages.
|
||||||
|
* The whole output could be matched or just a subset of it.
|
||||||
|
*
|
||||||
|
* @param from
|
||||||
|
* The line (excluded) from where output will be matched.
|
||||||
|
* Set {@code from} to null for matching from the first line.
|
||||||
|
* @param to
|
||||||
|
* The line (excluded) until where output will be matched.
|
||||||
|
* Set {@code to} to null for matching until the last line.
|
||||||
|
* @param pattern
|
||||||
|
* Matching pattern
|
||||||
|
*/
|
||||||
|
public OutputAnalyzer shouldMatchByLineIgnoreVMWarnings(String from, String to, String pattern) {
|
||||||
|
return shouldMatchByLine(getOutput(), from, to, pattern, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -675,11 +714,12 @@ public final class OutputAnalyzer {
|
|||||||
* Matching pattern
|
* Matching pattern
|
||||||
*/
|
*/
|
||||||
public OutputAnalyzer stdoutShouldMatchByLine(String from, String to, String pattern) {
|
public OutputAnalyzer stdoutShouldMatchByLine(String from, String to, String pattern) {
|
||||||
return shouldMatchByLine(getStdout(), from, to, pattern);
|
return shouldMatchByLine(getStdout(), from, to, pattern, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private OutputAnalyzer shouldMatchByLine(String buffer, String from, String to, String pattern) {
|
private OutputAnalyzer shouldMatchByLine(String buffer, String from, String to, String pattern,
|
||||||
List<String> lines = asLines(buffer);
|
boolean ignoreVMWarnings) {
|
||||||
|
List<String> lines = ignoreVMWarnings ? asLinesWithoutVMWarnings() : asLines(buffer);
|
||||||
|
|
||||||
int fromIndex = 0;
|
int fromIndex = 0;
|
||||||
if (from != null) {
|
if (from != null) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user