< prev index next >

test/jdk/com/sun/management/OperatingSystemMXBean/TestTotalSwap.java

Print this page
rev 59104 : imported patch serviceability


 100         // sanity check
 101         if (size < min_size_for_pass || size > MAX_SIZE_FOR_PASS) {
 102             throw new RuntimeException("Total swap space size " +
 103                                        "illegal value: " + size + " bytes " +
 104                                        "(MIN = " + min_size_for_pass + "; " +
 105                                        "MAX = " + MAX_SIZE_FOR_PASS + ")");
 106         }
 107 
 108         System.out.println("Test passed.");
 109     }
 110 
 111     private static long getSwapSizeFromOs() throws Throwable {
 112         if (Platform.isLinux()) {
 113             // total       used       free     shared    buffers     cached
 114             // Mem:    16533540864 13638467584 2895073280  534040576 1630248960 6236909568
 115             // -/+ buffers/cache: 5771309056 10762231808
 116             // Swap:   15999168512          0 15999168512
 117             String swapSizeStr = ProcessTools.executeCommand("free", "-b")
 118                                              .firstMatch("Swap:\\s+([0-9]+)\\s+.*", 1);
 119             return Long.parseLong(swapSizeStr);
 120         } else if (Platform.isSolaris()) {
 121             // swapfile             dev   swaplo blocks   free
 122             // /dev/dsk/c0t0d0s1   136,1      16 1638608 1600528
 123             OutputAnalyzer out= ProcessTools.executeCommand(
 124                     "/usr/sbin/swap",
 125                     "-l"
 126             );
 127 
 128             long swapSize = 0;
 129 
 130             for (String line : out.asLines()) {
 131                 if (line.contains("swapfile")) continue;
 132 
 133                 String[] vals = line.split("\\s+");
 134                 if (vals.length == 5) {
 135                     swapSize += Long.parseLong(vals[3]) * 512; // size is reported in 512b blocks
 136                 }
 137             }
 138 
 139             return swapSize;
 140         } else if (Platform.isOSX()) {
 141             // total = 8192.00M used = 7471.11M free = 720.89M (encrypted)
 142             String swapSizeStr = ProcessTools.executeCommand(
 143                     "/usr/sbin/sysctl",
 144                     "-n",
 145                     "vm.swapusage"
 146             ).firstMatch("total\\s+=\\s+([0-9]+(\\.[0-9]+)?[Mm]?).*", 1);
 147             if (swapSizeStr.toLowerCase().endsWith("m")) {
 148                 swapSizeStr = swapSizeStr.substring(0, swapSizeStr.length() - 1);
 149                 return (long)(Double.parseDouble(swapSizeStr) * 1024 * 1024); // size in MB
 150             }
 151             return (long)(Double.parseDouble(swapSizeStr) * 1024 * 1024);
 152         } else {
 153             System.err.println("Unsupported operating system: " + Platform.getOsName());
 154         }
 155 
 156         return -1;
 157     }
 158 }


 100         // sanity check
 101         if (size < min_size_for_pass || size > MAX_SIZE_FOR_PASS) {
 102             throw new RuntimeException("Total swap space size " +
 103                                        "illegal value: " + size + " bytes " +
 104                                        "(MIN = " + min_size_for_pass + "; " +
 105                                        "MAX = " + MAX_SIZE_FOR_PASS + ")");
 106         }
 107 
 108         System.out.println("Test passed.");
 109     }
 110 
 111     private static long getSwapSizeFromOs() throws Throwable {
 112         if (Platform.isLinux()) {
 113             // total       used       free     shared    buffers     cached
 114             // Mem:    16533540864 13638467584 2895073280  534040576 1630248960 6236909568
 115             // -/+ buffers/cache: 5771309056 10762231808
 116             // Swap:   15999168512          0 15999168512
 117             String swapSizeStr = ProcessTools.executeCommand("free", "-b")
 118                                              .firstMatch("Swap:\\s+([0-9]+)\\s+.*", 1);
 119             return Long.parseLong(swapSizeStr);




















 120         } else if (Platform.isOSX()) {
 121             // total = 8192.00M used = 7471.11M free = 720.89M (encrypted)
 122             String swapSizeStr = ProcessTools.executeCommand(
 123                     "/usr/sbin/sysctl",
 124                     "-n",
 125                     "vm.swapusage"
 126             ).firstMatch("total\\s+=\\s+([0-9]+(\\.[0-9]+)?[Mm]?).*", 1);
 127             if (swapSizeStr.toLowerCase().endsWith("m")) {
 128                 swapSizeStr = swapSizeStr.substring(0, swapSizeStr.length() - 1);
 129                 return (long)(Double.parseDouble(swapSizeStr) * 1024 * 1024); // size in MB
 130             }
 131             return (long)(Double.parseDouble(swapSizeStr) * 1024 * 1024);
 132         } else {
 133             System.err.println("Unsupported operating system: " + Platform.getOsName());
 134         }
 135 
 136         return -1;
 137     }
 138 }
< prev index next >