--- old/test/lib/jdk/test/lib/jfr/GCHelper.java 2020-02-06 19:19:00.296545349 +0100 +++ new/test/lib/jdk/test/lib/jfr/GCHelper.java 2020-02-06 19:19:00.127545363 +0100 @@ -80,6 +80,7 @@ public static final String pauseLevelEvent = "GCPhasePauseLevel"; private static final List g1HeapRegionTypes; + private static final List shenandoahHeapRegionStates; private static PrintStream defaultErrorLog = null; public static int getGcId(RecordedEvent event) { @@ -207,6 +208,21 @@ }; g1HeapRegionTypes = Collections.unmodifiableList(Arrays.asList(g1HeapRegionTypeLiterals)); + + String[] shenandoahHeapRegionStateLiterals = new String[] { + "Empty Uncommitted", + "Empty Committed", + "Regular", + "Humongous Start", + "Humongous Continuation", + "Humongous Start, Pinned", + "Collection Set", + "Pinned", + "Collection Set, Pinned", + "Trash" + }; + + shenandoahHeapRegionStates = Collections.unmodifiableList(Arrays.asList(shenandoahHeapRegionStateLiterals)); } /** @@ -443,6 +459,13 @@ return g1HeapRegionTypes.contains(type); } + public static boolean assertIsValidShenandoahHeapRegionState(final String state) { + if (!shenandoahHeapRegionStates.contains(state)) { + throw new AssertionError("Unknown state '" + state + "', valid heap region states are " + shenandoahHeapRegionStates); + } + return true; + } + /** * Helper function to align heap size up. *