equal
deleted
inserted
replaced
34 /** |
34 /** |
35 * @test |
35 * @test |
36 * @summary Tests RecordingStream::onEvent(...) |
36 * @summary Tests RecordingStream::onEvent(...) |
37 * @key jfr |
37 * @key jfr |
38 * @requires vm.hasJFR |
38 * @requires vm.hasJFR |
39 * @library /test/lib |
39 * @library /test/lib /test/jdk |
40 * @run main/othervm jdk.jfr.api.consumer.recordingstream.TestOnEvent |
40 * @run main/othervm jdk.jfr.api.consumer.recordingstream.TestOnEvent |
41 */ |
41 */ |
42 public class TestOnEvent { |
42 public class TestOnEvent { |
43 |
43 |
44 @Name("A") |
44 @Name("A") |
56 public static void main(String... args) throws Exception { |
56 public static void main(String... args) throws Exception { |
57 testOnEventNull(); |
57 testOnEventNull(); |
58 testOnEvent(); |
58 testOnEvent(); |
59 testNamedEvent(); |
59 testNamedEvent(); |
60 testTwoEventWithSameName(); |
60 testTwoEventWithSameName(); |
|
61 testOnEventAfterStart(); |
61 } |
62 } |
62 |
63 |
63 private static void testOnEventNull() { |
64 private static void testOnEventNull() { |
64 log("Entering testOnEventNull()"); |
65 log("Entering testOnEventNull()"); |
65 try (RecordingStream rs = new RecordingStream()) { |
66 try (RecordingStream rs = new RecordingStream()) { |
147 event.await(); |
148 event.await(); |
148 } |
149 } |
149 log("Leaving testOnEvent()"); |
150 log("Leaving testOnEvent()"); |
150 } |
151 } |
151 |
152 |
|
153 private static void testOnEventAfterStart() { |
|
154 try (RecordingStream r = new RecordingStream()) { |
|
155 EventProducer p = new EventProducer(); |
|
156 p.start(); |
|
157 Thread addHandler = new Thread(() -> { |
|
158 r.onEvent(e -> { |
|
159 // Got event, close stream |
|
160 r.close(); |
|
161 }); |
|
162 }); |
|
163 r.onFlush(() -> { |
|
164 // Only add handler once |
|
165 if (!"started".equals(addHandler.getName())) { |
|
166 addHandler.setName("started"); |
|
167 addHandler.start(); |
|
168 } |
|
169 }); |
|
170 r.start(); |
|
171 p.kill(); |
|
172 } |
|
173 } |
|
174 |
|
175 |
152 private static void log(String msg) { |
176 private static void log(String msg) { |
153 System.out.println(msg); |
177 System.out.println(msg); |
154 } |
178 } |
155 } |
179 } |