25
26 import java.util.List;
27
28 /**
29 * @test
30 * @summary Verifies the JVMTI Heap Monitor API
31 * @build Frame HeapMonitor
32 * @compile HeapMonitorTest.java
33 * @run main/othervm/native -agentlib:HeapMonitor MyPackage.HeapMonitorTest
34 */
35
36 public class HeapMonitorTest {
37
38 private static native boolean framesAreNotLive(Frame[] frames);
39
40 public static void main(String[] args) {
41 if (!HeapMonitor.eventStorageIsEmpty()) {
42 throw new RuntimeException("Storage is not empty at test start...");
43 }
44
45 HeapMonitor.enableSamplingRate();
46 List<Frame> frameList = HeapMonitor.allocate();
47 frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorTest.java", 46));
48
49 Frame[] frames = frameList.toArray(new Frame[0]);
50 if (!HeapMonitor.obtainedEvents(frames)) {
51 throw new RuntimeException("Events not found with the right frames.");
52 }
53
54 HeapMonitor.disableSamplingRate();
55 HeapMonitor.resetEventStorage();
56 if (!HeapMonitor.eventStorageIsEmpty()) {
57 throw new RuntimeException("Storage is not empty after reset.");
58 }
59
60 HeapMonitor.allocate();
61 if (!HeapMonitor.eventStorageIsEmpty()) {
62 throw new RuntimeException("Storage is not empty after allocation while disabled.");
63 }
64 }
65 }
|
25
26 import java.util.List;
27
28 /**
29 * @test
30 * @summary Verifies the JVMTI Heap Monitor API
31 * @build Frame HeapMonitor
32 * @compile HeapMonitorTest.java
33 * @run main/othervm/native -agentlib:HeapMonitor MyPackage.HeapMonitorTest
34 */
35
36 public class HeapMonitorTest {
37
38 private static native boolean framesAreNotLive(Frame[] frames);
39
40 public static void main(String[] args) {
41 if (!HeapMonitor.eventStorageIsEmpty()) {
42 throw new RuntimeException("Storage is not empty at test start...");
43 }
44
45 HeapMonitor.enableSamplingEvents();
46 List<Frame> frameList = HeapMonitor.allocate();
47 frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorTest.java", 46));
48
49 Frame[] frames = frameList.toArray(new Frame[0]);
50 if (!HeapMonitor.obtainedEvents(frames)) {
51 throw new RuntimeException("Events not found with the right frames.");
52 }
53
54 HeapMonitor.disableSamplingEvents();
55 HeapMonitor.resetEventStorage();
56 if (!HeapMonitor.eventStorageIsEmpty()) {
57 throw new RuntimeException("Storage is not empty after reset.");
58 }
59
60 HeapMonitor.allocate();
61 if (!HeapMonitor.eventStorageIsEmpty()) {
62 throw new RuntimeException("Storage is not empty after allocation while disabled.");
63 }
64 }
65 }
|