44 import java.util.Map;
45 import jdk.testlibrary.ProcessTools;
46 import sun.tools.attach.HotSpotVirtualMachine;
47
48 public class CheckOrigin {
49
50 private static HotSpotDiagnosticMXBean mbean;
51
52 public static void main(String... args) throws Exception {
53 if (args.length == 0) {
54 // start a process that has options set in a number of different ways
55
56 File flagsFile = File.createTempFile("CheckOriginFlags", null);
57 try (PrintWriter pw =
58 new PrintWriter(new FileWriter(flagsFile))) {
59 pw.println("+PrintSafepointStatistics");
60 }
61
62 ProcessBuilder pb = ProcessTools.
63 createJavaProcessBuilder(
64 "-XaddExports:jdk.attach/sun.tools.attach=ALL-UNNAMED",
65 "-XX:+UseConcMarkSweepGC", // this will cause UseParNewGC to be FLAG_SET_ERGO
66 "-XX:+UseCodeAging",
67 "-XX:+UseCerealGC", // Should be ignored.
68 "-XX:Flags=" + flagsFile.getAbsolutePath(),
69 "-cp", System.getProperty("test.class.path"),
70 "CheckOrigin",
71 "-runtests");
72
73 Map<String, String> env = pb.environment();
74 // "UseCMSGC" should be ignored.
75 env.put("_JAVA_OPTIONS", "-XX:+CheckJNICalls -XX:+UseCMSGC");
76 // "UseGOneGC" should be ignored.
77 env.put("JAVA_TOOL_OPTIONS", "-XX:+IgnoreUnrecognizedVMOptions "
78 + "-XX:+PrintVMOptions -XX:+UseGOneGC");
79
80 pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
81 pb.redirectError(ProcessBuilder.Redirect.INHERIT);
82 Process p = pb.start();
83 int exit = p.waitFor();
84 System.out.println("sub process exit == " + exit);
|
44 import java.util.Map;
45 import jdk.testlibrary.ProcessTools;
46 import sun.tools.attach.HotSpotVirtualMachine;
47
48 public class CheckOrigin {
49
50 private static HotSpotDiagnosticMXBean mbean;
51
52 public static void main(String... args) throws Exception {
53 if (args.length == 0) {
54 // start a process that has options set in a number of different ways
55
56 File flagsFile = File.createTempFile("CheckOriginFlags", null);
57 try (PrintWriter pw =
58 new PrintWriter(new FileWriter(flagsFile))) {
59 pw.println("+PrintSafepointStatistics");
60 }
61
62 ProcessBuilder pb = ProcessTools.
63 createJavaProcessBuilder(
64 "--add-exports", "jdk.attach/sun.tools.attach=ALL-UNNAMED",
65 "-XX:+UseConcMarkSweepGC", // this will cause UseParNewGC to be FLAG_SET_ERGO
66 "-XX:+UseCodeAging",
67 "-XX:+UseCerealGC", // Should be ignored.
68 "-XX:Flags=" + flagsFile.getAbsolutePath(),
69 "-cp", System.getProperty("test.class.path"),
70 "CheckOrigin",
71 "-runtests");
72
73 Map<String, String> env = pb.environment();
74 // "UseCMSGC" should be ignored.
75 env.put("_JAVA_OPTIONS", "-XX:+CheckJNICalls -XX:+UseCMSGC");
76 // "UseGOneGC" should be ignored.
77 env.put("JAVA_TOOL_OPTIONS", "-XX:+IgnoreUnrecognizedVMOptions "
78 + "-XX:+PrintVMOptions -XX:+UseGOneGC");
79
80 pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
81 pb.redirectError(ProcessBuilder.Redirect.INHERIT);
82 Process p = pb.start();
83 int exit = p.waitFor();
84 System.out.println("sub process exit == " + exit);
|