test/lib/jdk/test/lib/containers/cgroup/MetricsTester.java
changeset 57943 72bc9a29fd7e
parent 57678 b948b920e29f
child 58679 9c3209ff7550
equal deleted inserted replaced
57942:e29b6ddfd9f4 57943:72bc9a29fd7e
   580 
   580 
   581     public void testMemoryUsage() throws Exception {
   581     public void testMemoryUsage() throws Exception {
   582         Metrics metrics = Metrics.systemMetrics();
   582         Metrics metrics = Metrics.systemMetrics();
   583         long memoryMaxUsage = metrics.getMemoryMaxUsage();
   583         long memoryMaxUsage = metrics.getMemoryMaxUsage();
   584         long memoryUsage = metrics.getMemoryUsage();
   584         long memoryUsage = metrics.getMemoryUsage();
   585 
   585         long newMemoryMaxUsage = 0, newMemoryUsage = 0;
   586         byte[] bb = new byte[64*1024*1024]; // 64M
   586 
   587 
   587         // allocate memory in a loop and check more than once for new values
   588         long newMemoryMaxUsage = metrics.getMemoryMaxUsage();
   588         // otherwise we might see seldom the effect of decreasing new memory values
   589         long newMemoryUsage = metrics.getMemoryUsage();
   589         // e.g. because the system could free up memory
   590 
   590         byte[][] bytes = new byte[32][];
   591         if(newMemoryMaxUsage < memoryMaxUsage) {
   591         for (int i = 0; i < 32; i++) {
   592             fail(SubSystem.MEMORY, "getMemoryMaxUsage", newMemoryMaxUsage,
   592             bytes[i] = new byte[8*1024*1024];
   593                     memoryMaxUsage);
   593             newMemoryUsage = metrics.getMemoryUsage();
   594         }
   594             if (newMemoryUsage > memoryUsage) {
   595 
   595                 break;
   596         if(newMemoryUsage < memoryUsage) {
   596             }
   597             fail(SubSystem.MEMORY, "getMemoryUsage", newMemoryUsage, memoryUsage);
   597         }
       
   598         newMemoryMaxUsage = metrics.getMemoryMaxUsage();
       
   599 
       
   600         if (newMemoryMaxUsage < memoryMaxUsage) {
       
   601             fail(SubSystem.MEMORY, "getMemoryMaxUsage", memoryMaxUsage,
       
   602                     newMemoryMaxUsage);
       
   603         }
       
   604 
       
   605         if (newMemoryUsage < memoryUsage) {
       
   606             fail(SubSystem.MEMORY, "getMemoryUsage", memoryUsage, newMemoryUsage);
   598         }
   607         }
   599     }
   608     }
   600 
   609 
   601     public static void main(String[] args) throws Exception {
   610     public static void main(String[] args) throws Exception {
   602         // If cgroups is not configured, report success
   611         // If cgroups is not configured, report success