< prev index next >

test/hotspot/jtreg/gc/shenandoah/mxbeans/TestMemoryMXBeans.java

Print this page
rev 53841 : 8219524: Shenandoah misreports "committed" size in MemoryMXBean
Reviewed-by: XXX

@@ -50,17 +50,23 @@
     }
 
     public static void testMemoryBean(long initSize, long maxSize) {
         MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
         long heapInit = memoryMXBean.getHeapMemoryUsage().getInit();
+        long heapCommitted = memoryMXBean.getHeapMemoryUsage().getCommitted();
         long heapMax = memoryMXBean.getHeapMemoryUsage().getMax();
         long nonHeapInit = memoryMXBean.getNonHeapMemoryUsage().getInit();
+        long nonHeapCommitted = memoryMXBean.getNonHeapMemoryUsage().getCommitted();
         long nonHeapMax = memoryMXBean.getNonHeapMemoryUsage().getMax();
 
         if (initSize > 0 && heapInit != initSize) {
             throw new IllegalStateException("Init heap size is wrong: " + heapInit + " vs " + initSize);
         }
         if (maxSize > 0 && heapMax != maxSize) {
             throw new IllegalStateException("Max heap size is wrong: " + heapMax + " vs " + maxSize);
         }
+        if (initSize > 0 && maxSize > 0 && initSize != maxSize && heapCommitted == heapMax) {
+            throw new IllegalStateException("Init committed heap size is wrong: " + heapCommitted +
+                                            " (init: " + initSize + ", max: " + maxSize + ")");
+        }
     }
 }
< prev index next >