37 public class StartupTimeTest { |
37 public class StartupTimeTest { |
38 static void analyzeOutputOn(ProcessBuilder pb) throws Exception { |
38 static void analyzeOutputOn(ProcessBuilder pb) throws Exception { |
39 OutputAnalyzer output = new OutputAnalyzer(pb.start()); |
39 OutputAnalyzer output = new OutputAnalyzer(pb.start()); |
40 output.shouldMatch("(Genesis, [0-9]+.[0-9]+ secs)"); |
40 output.shouldMatch("(Genesis, [0-9]+.[0-9]+ secs)"); |
41 output.shouldMatch("(Start VMThread, [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)"); |
42 output.shouldMatch("(Create VM, [0-9]+.[0-9]+ secs)"); |
43 output.shouldMatch("(Create VM, [0-9]+.[0-9]+ secs)"); |
43 output.shouldHaveExitValue(0); |
44 output.shouldHaveExitValue(0); |
44 } |
45 } |
45 |
46 |
46 static void analyzeOutputOff(ProcessBuilder pb) throws Exception { |
47 static void analyzeOutputOff(ProcessBuilder pb) throws Exception { |
47 OutputAnalyzer output = new OutputAnalyzer(pb.start()); |
48 OutputAnalyzer output = new OutputAnalyzer(pb.start()); |
48 output.shouldNotContain("[startuptime]"); |
49 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); |
50 output.shouldHaveExitValue(0); |
62 } |
51 } |
63 |
52 |
64 public static void main(String[] args) throws Exception { |
53 public static void main(String[] args) throws Exception { |
65 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime", |
54 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime", |
67 analyzeOutputOn(pb); |
56 analyzeOutputOn(pb); |
68 |
57 |
69 pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime=off", |
58 pb = ProcessTools.createJavaProcessBuilder("-Xlog:startuptime=off", |
70 InnerClass.class.getName()); |
59 InnerClass.class.getName()); |
71 analyzeOutputOff(pb); |
60 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 } |
61 } |
81 |
62 |
82 public static class InnerClass { |
63 public static class InnerClass { |
83 public static void main(String[] args) throws Exception { |
64 public static void main(String[] args) throws Exception { |
84 System.out.println("Testing startuptime."); |
65 System.out.println("Testing startuptime."); |