< prev index next >

test/jdk/jdk/internal/platform/docker/MetricsMemoryTester.java

Print this page
@  rev 57734 : Review feedback
|
o  rev 57733 : 8231111: Cgroups v2: Rework Metrics in java.base so as to recognize unified hierarchy
|  Reviewed-by: bobv, mchung
~

@@ -21,10 +21,11 @@
  * questions.
  */
 
 import java.util.Arrays;
 import jdk.internal.platform.Metrics;
+import jdk.internal.platform.MetricsCgroupV1;
 
 public class MetricsMemoryTester {
     public static void main(String[] args) {
         System.out.println(Arrays.toString(args));
         switch (args[0]) {

@@ -105,18 +106,24 @@
         }
         System.out.println("TEST PASSED!!!");
     }
 
     private static void testKernelMemoryLimit(String value) {
+        Metrics m = Metrics.systemMetrics();
+        if (m instanceof MetricsCgroupV1) {
+            MetricsCgroupV1 mCgroupV1 = (MetricsCgroupV1)m;
+            System.out.println("TEST PASSED!!!");
         long limit = getMemoryValue(value);
-        long kmemlimit = Metrics.systemMetrics().getKernelMemoryLimit();
+            long kmemlimit = mCgroupV1.getKernelMemoryLimit();
         if (kmemlimit != 0 && limit != kmemlimit) {
             throw new RuntimeException("Kernel Memory limit not equal, expected : ["
                     + limit + "]" + ", got : ["
                     + kmemlimit + "]");
         }
-        System.out.println("TEST PASSED!!!");
+        } else {
+            throw new RuntimeException("oomKillFlag test not supported for cgroups v2");
+        }
     }
 
     private static void testMemoryAndSwapLimit(String memory, String memAndSwap) {
         long expectedMem = getMemoryValue(memory);
         long expectedMemAndSwap = getMemoryValue(memAndSwap);

@@ -144,11 +151,19 @@
         }
         return result;
     }
 
     private static void testOomKillFlag(boolean oomKillFlag) {
-        if (!(oomKillFlag ^ Metrics.systemMetrics().isMemoryOOMKillEnabled())) {
+        Metrics m = Metrics.systemMetrics();
+        if (m instanceof MetricsCgroupV1) {
+            MetricsCgroupV1 mCgroupV1 = (MetricsCgroupV1)m;
+            Boolean expected = Boolean.valueOf(oomKillFlag);
+            Boolean actual = mCgroupV1.isMemoryOOMKillEnabled();
+            if (!(expected.equals(actual))) {
             throw new RuntimeException("oomKillFlag error");
         }
         System.out.println("TEST PASSED!!!");
+        } else {
+            throw new RuntimeException("oomKillFlag test not supported for cgroups v2");
+        }
     }
 }
< prev index next >