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 }
|