22 */
23
24 /*
25 * @test
26 * @bug 8148630
27 * @summary -Xlog:startuptime should produce logging from the source code
28 * @library /test/lib
29 * @modules java.base/jdk.internal.misc
30 * java.management
31 * @run driver StartupTimeTest
32 */
33
34 import jdk.test.lib.process.OutputAnalyzer;
35 import jdk.test.lib.process.ProcessTools;
36
37 public class StartupTimeTest {
38 static void analyzeOutputOn(ProcessBuilder pb) throws Exception {
39 OutputAnalyzer output = new OutputAnalyzer(pb.start());
40 output.shouldMatch("(Genesis, [0-9]+.[0-9]+ secs)");
41 output.shouldMatch("(Start VMThread, [0-9]+.[0-9]+ secs)");
42 output.shouldMatch("(Create VM, [0-9]+.[0-9]+ secs)");
43 output.shouldHaveExitValue(0);
44 }
45
46 static void analyzeOutputOff(ProcessBuilder pb) throws Exception {
47 OutputAnalyzer output = new OutputAnalyzer(pb.start());
48 output.shouldNotContain("[startuptime]");
49 output.shouldHaveExitValue(0);
50 }
51
52 static void analyzeModulesOutputOn(ProcessBuilder pb) throws Exception {
53 OutputAnalyzer output = new OutputAnalyzer(pb.start());
54 output.shouldMatch("(Phase2 initialization, [0-9]+.[0-9]+ secs)");
55 output.shouldHaveExitValue(0);
56 }
57
58 static void analyzeModulesOutputOff(ProcessBuilder pb) throws Exception {
59 OutputAnalyzer output = new OutputAnalyzer(pb.start());
60 output.shouldNotContain("[module,startuptime]");
61 output.shouldHaveExitValue(0);
62 }
63
64 public static void main(String[] args) throws Exception {
65 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime",
66 InnerClass.class.getName());
67 analyzeOutputOn(pb);
68
69 pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime=off",
70 InnerClass.class.getName());
71 analyzeOutputOff(pb);
72
73 pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime+module",
74 InnerClass.class.getName());
75 analyzeModulesOutputOn(pb);
76
77 pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime+module=off",
78 InnerClass.class.getName());
79 analyzeModulesOutputOff(pb);
80 }
81
82 public static class InnerClass {
83 public static void main(String[] args) throws Exception {
84 System.out.println("Testing startuptime.");
85 }
86 }
87 }
|
22 */
23
24 /*
25 * @test
26 * @bug 8148630
27 * @summary -Xlog:startuptime should produce logging from the source code
28 * @library /test/lib
29 * @modules java.base/jdk.internal.misc
30 * java.management
31 * @run driver StartupTimeTest
32 */
33
34 import jdk.test.lib.process.OutputAnalyzer;
35 import jdk.test.lib.process.ProcessTools;
36
37 public class StartupTimeTest {
38 static void analyzeOutputOn(ProcessBuilder pb) throws Exception {
39 OutputAnalyzer output = new OutputAnalyzer(pb.start());
40 output.shouldMatch("(Genesis, [0-9]+.[0-9]+ secs)");
41 output.shouldMatch("(Start VMThread, [0-9]+.[0-9]+ secs)");
42 output.shouldMatch("(Initialize module system, [0-9]+.[0-9]+ secs)");
43 output.shouldMatch("(Create VM, [0-9]+.[0-9]+ secs)");
44 output.shouldHaveExitValue(0);
45 }
46
47 static void analyzeOutputOff(ProcessBuilder pb) throws Exception {
48 OutputAnalyzer output = new OutputAnalyzer(pb.start());
49 output.shouldNotContain("[startuptime]");
50 output.shouldHaveExitValue(0);
51 }
52
53 public static void main(String[] args) throws Exception {
54 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime",
55 InnerClass.class.getName());
56 analyzeOutputOn(pb);
57
58 pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime=off",
59 InnerClass.class.getName());
60 analyzeOutputOff(pb);
61 }
62
63 public static class InnerClass {
64 public static void main(String[] args) throws Exception {
65 System.out.println("Testing startuptime.");
66 }
67 }
68 }
|