< prev index next >

test/jdk/jfr/event/gc/heapsummary/HeapSummaryEventAllGcs.java

Print this page
rev 13430 : Add EventG1HeapSummary support.

@@ -39,10 +39,11 @@
 
     public static void test(String expectedYoungCollector, String expectedOldCollector) throws Exception {
         Recording recording = new Recording();
         recording.enable(EventNames.GCConfiguration);
         recording.enable(EventNames.GCHeapSummary);
+        recording.enable(EventNames.G1HeapSummary);
         recording.enable(EventNames.PSHeapSummary);
         recording.enable(EventNames.MetaspaceSummary).withThreshold(Duration.ofMillis(0));
 
         recording.start();
         // To eliminate the risk of being in the middle of a GC when the recording starts/stops,

@@ -60,20 +61,25 @@
 
         Asserts.assertFalse(events.isEmpty(), "Expected at least one event.");
         Asserts.assertEquals(events.size() % 2, 0, "Events should come in pairs");
 
         int lastHeapGcId = -1;
+        int lastG1GcId = -1;
         int lastPSGcId = -1;
         int lastMetaspaceGcId = -1;
 
         for (RecordedEvent event : events) {
             final String eventName = event.getEventType().getName();
             switch (eventName) {
                 case EventNames.GCHeapSummary:
                     lastHeapGcId = checkGcId(event, lastHeapGcId);
                     checkHeapEventContent(event);
                     break;
+                case EventNames.G1HeapSummary:
+                    lastG1GcId = checkGcId(event, lastG1GcId);
+                    checkG1EventContent(event);
+                    break;
                 case EventNames.PSHeapSummary:
                     lastPSGcId = checkGcId(event, lastPSGcId);
                     checkPSEventContent(event);
                     break;
                 case EventNames.MetaspaceSummary:

@@ -125,10 +131,18 @@
         long start = Events.assertField(event, "heapSpace.start").atLeast(0L).getValue();
         long committedEnd = Events.assertField(event, "heapSpace.committedEnd").above(start).getValue();
         Asserts.assertLessThanOrEqual(heapUsed, committedEnd- start, "used can not exceed size");
     }
 
+    private static void checkG1EventContent(RecordedEvent event) {
+        long edenUsedSize = Events.assertField(event, "edenUsedSize").atLeast(0L).getValue();
+        long edenTotalSize = Events.assertField(event, "edenTotalSize").atLeast(0L).getValue();
+        Asserts.assertLessThanOrEqual(edenUsedSize, edenTotalSize, "used can not exceed size");
+        Events.assertField(event, "survivorUsedSize").atLeast(0L);
+        Events.assertField(event, "numberOfRegions").atLeast(0);
+    }
+
     private static void checkPSEventContent(RecordedEvent event) {
         checkVirtualSpace(event, "oldSpace");
         checkVirtualSpace(event, "youngSpace");
         checkSpace(event, "oldObjectSpace");
         checkSpace(event, "edenSpace");
< prev index next >