57 out = new OutputAnalyzer(pb.start());
58 for (String s: outputStrings) {
59 out.shouldContain(s);
60 }
61 out.shouldHaveExitValue(0);
62 }
63
64 static void checkAbsent(String... outputStrings) throws Exception {
65 out = new OutputAnalyzer(pb.start());
66 for (String s: outputStrings) {
67 out.shouldNotContain(s);
68 }
69 out.shouldHaveExitValue(0);
70 }
71
72 // Use the same command-line heap size setting as ../ClassUnload/UnloadTest.java
73 static ProcessBuilder exec(String... args) throws Exception {
74 List<String> argsList = new ArrayList<>();
75 Collections.addAll(argsList, args);
76 Collections.addAll(argsList, "-Xmn8m");
77 Collections.addAll(argsList, "-Dtest.classes=" + System.getProperty("test.classes","."));
78 Collections.addAll(argsList, ClassUnloadTestMain.class.getName());
79 return ProcessTools.createJavaProcessBuilder(argsList.toArray(new String[argsList.size()]));
80 }
81
82 public static void main(String... args) throws Exception {
83
84 // -Xlog:class+unload=info
85 pb = exec("-Xlog:class+unload=info");
86 checkFor("[class,unload]", "unloading class");
87
88 // -Xlog:class+unload=off
89 pb = exec("-Xlog:class+unload=off");
90 checkAbsent("[class,unload]");
91
92 // -XX:+TraceClassUnloading
93 pb = exec("-XX:+TraceClassUnloading");
94 checkFor("[class,unload]", "unloading class");
95
96 // -XX:-TraceClassUnloading
97 pb = exec("-XX:-TraceClassUnloading");
|
57 out = new OutputAnalyzer(pb.start());
58 for (String s: outputStrings) {
59 out.shouldContain(s);
60 }
61 out.shouldHaveExitValue(0);
62 }
63
64 static void checkAbsent(String... outputStrings) throws Exception {
65 out = new OutputAnalyzer(pb.start());
66 for (String s: outputStrings) {
67 out.shouldNotContain(s);
68 }
69 out.shouldHaveExitValue(0);
70 }
71
72 // Use the same command-line heap size setting as ../ClassUnload/UnloadTest.java
73 static ProcessBuilder exec(String... args) throws Exception {
74 List<String> argsList = new ArrayList<>();
75 Collections.addAll(argsList, args);
76 Collections.addAll(argsList, "-Xmn8m");
77 Collections.addAll(argsList, "-Dtest.class.path=" + System.getProperty("test.class.path", "."));
78 Collections.addAll(argsList, ClassUnloadTestMain.class.getName());
79 return ProcessTools.createJavaProcessBuilder(argsList.toArray(new String[argsList.size()]));
80 }
81
82 public static void main(String... args) throws Exception {
83
84 // -Xlog:class+unload=info
85 pb = exec("-Xlog:class+unload=info");
86 checkFor("[class,unload]", "unloading class");
87
88 // -Xlog:class+unload=off
89 pb = exec("-Xlog:class+unload=off");
90 checkAbsent("[class,unload]");
91
92 // -XX:+TraceClassUnloading
93 pb = exec("-XX:+TraceClassUnloading");
94 checkFor("[class,unload]", "unloading class");
95
96 // -XX:-TraceClassUnloading
97 pb = exec("-XX:-TraceClassUnloading");
|