1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.commons.lang3;
21
22 import static org.apache.commons.lang3.JavaVersion.JAVA_10;
23 import static org.apache.commons.lang3.JavaVersion.JAVA_11;
24 import static org.apache.commons.lang3.JavaVersion.JAVA_12;
25 import static org.apache.commons.lang3.JavaVersion.JAVA_13;
26 import static org.apache.commons.lang3.JavaVersion.JAVA_1_1;
27 import static org.apache.commons.lang3.JavaVersion.JAVA_1_2;
28 import static org.apache.commons.lang3.JavaVersion.JAVA_1_3;
29 import static org.apache.commons.lang3.JavaVersion.JAVA_1_4;
30 import static org.apache.commons.lang3.JavaVersion.JAVA_1_5;
31 import static org.apache.commons.lang3.JavaVersion.JAVA_1_6;
32 import static org.apache.commons.lang3.JavaVersion.JAVA_1_7;
33 import static org.apache.commons.lang3.JavaVersion.JAVA_1_8;
34 import static org.apache.commons.lang3.JavaVersion.JAVA_9;
35 import static org.junit.jupiter.api.Assertions.assertEquals;
36 import static org.junit.jupiter.api.Assertions.assertFalse;
37 import static org.junit.jupiter.api.Assertions.assertNotNull;
38 import static org.junit.jupiter.api.Assertions.assertNull;
39 import static org.junit.jupiter.api.Assertions.assertTrue;
40
41 import java.io.File;
42 import java.lang.reflect.Constructor;
43 import java.lang.reflect.Field;
44 import java.lang.reflect.Modifier;
45 import java.util.Locale;
46
47 import org.junit.jupiter.api.Test;
48
49
50
51
52
53
54 public class SystemUtilsTest extends AbstractLangTest {
55
56
57
58
59 private boolean getIS_JAVA(int version) throws Exception {
60 return SystemUtils.class.getField("IS_JAVA_" + version).getBoolean(null);
61 }
62
63
64
65
66 public int getLastSupportedJavaVersion() {
67 int lastSupportedVersion = 0;
68
69 for (Field field : SystemUtils.class.getFields()) {
70 if (field.getName().matches("IS_JAVA_\\d+")) {
71 lastSupportedVersion = Math.max(lastSupportedVersion, Integer.parseInt(field.getName().substring(8)));
72 }
73 }
74
75 return lastSupportedVersion;
76 }
77
78 @Test
79 @SuppressWarnings("deprecation")
80 public void test_IS_JAVA() throws Exception {
81 String javaVersion = SystemUtils.JAVA_VERSION;
82 int lastSupportedVersion = getLastSupportedJavaVersion();
83
84 if (javaVersion == null) {
85 assertFalse(SystemUtils.IS_JAVA_1_1);
86 assertFalse(SystemUtils.IS_JAVA_1_2);
87 assertFalse(SystemUtils.IS_JAVA_1_3);
88 assertFalse(SystemUtils.IS_JAVA_1_4);
89 assertFalse(SystemUtils.IS_JAVA_1_5);
90 assertFalse(SystemUtils.IS_JAVA_1_6);
91 assertFalse(SystemUtils.IS_JAVA_1_7);
92 assertFalse(SystemUtils.IS_JAVA_1_8);
93 assertFalse(SystemUtils.IS_JAVA_1_9);
94
95 for (int version = 9; version <= lastSupportedVersion; version++) {
96 assertFalse(getIS_JAVA(version));
97 }
98
99 } else if (javaVersion.startsWith("1.8")) {
100 assertFalse(SystemUtils.IS_JAVA_1_1);
101 assertFalse(SystemUtils.IS_JAVA_1_2);
102 assertFalse(SystemUtils.IS_JAVA_1_3);
103 assertFalse(SystemUtils.IS_JAVA_1_4);
104 assertFalse(SystemUtils.IS_JAVA_1_5);
105 assertFalse(SystemUtils.IS_JAVA_1_6);
106 assertFalse(SystemUtils.IS_JAVA_1_7);
107 assertTrue(SystemUtils.IS_JAVA_1_8);
108 assertFalse(SystemUtils.IS_JAVA_1_9);
109
110 for (int version = 9; version <= lastSupportedVersion; version++) {
111 assertFalse(getIS_JAVA(version));
112 }
113
114 } else if (!javaVersion.startsWith("1.")) {
115 assertFalse(SystemUtils.IS_JAVA_1_1);
116 assertFalse(SystemUtils.IS_JAVA_1_2);
117 assertFalse(SystemUtils.IS_JAVA_1_3);
118 assertFalse(SystemUtils.IS_JAVA_1_4);
119 assertFalse(SystemUtils.IS_JAVA_1_5);
120 assertFalse(SystemUtils.IS_JAVA_1_6);
121 assertFalse(SystemUtils.IS_JAVA_1_7);
122 assertFalse(SystemUtils.IS_JAVA_1_8);
123 assertEquals(javaVersion.startsWith("9"), SystemUtils.IS_JAVA_1_9);
124
125 for (int version = 9; version <= lastSupportedVersion; version++) {
126 assertEquals(javaVersion.startsWith("" + version), getIS_JAVA(version));
127 }
128
129 } else {
130 System.out.println("Can't test IS_JAVA value: " + javaVersion);
131 }
132 }
133
134 @Test
135 public void test_IS_OS() {
136 final String osName = System.getProperty("os.name");
137 if (osName == null) {
138 assertFalse(SystemUtils.IS_OS_WINDOWS);
139 assertFalse(SystemUtils.IS_OS_UNIX);
140 assertFalse(SystemUtils.IS_OS_SOLARIS);
141 assertFalse(SystemUtils.IS_OS_LINUX);
142 assertFalse(SystemUtils.IS_OS_MAC_OSX);
143 } else if (osName.startsWith("Windows")) {
144 assertFalse(SystemUtils.IS_OS_UNIX);
145 assertTrue(SystemUtils.IS_OS_WINDOWS);
146 } else if (osName.startsWith("Solaris")) {
147 assertTrue(SystemUtils.IS_OS_SOLARIS);
148 assertTrue(SystemUtils.IS_OS_UNIX);
149 assertFalse(SystemUtils.IS_OS_WINDOWS);
150 } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) {
151 assertTrue(SystemUtils.IS_OS_LINUX);
152 assertTrue(SystemUtils.IS_OS_UNIX);
153 assertFalse(SystemUtils.IS_OS_WINDOWS);
154 } else if (osName.startsWith("Mac OS X")) {
155 assertTrue(SystemUtils.IS_OS_MAC_OSX);
156 assertTrue(SystemUtils.IS_OS_UNIX);
157 assertFalse(SystemUtils.IS_OS_WINDOWS);
158 } else if (osName.startsWith("OS/2")) {
159 assertTrue(SystemUtils.IS_OS_OS2);
160 assertFalse(SystemUtils.IS_OS_UNIX);
161 assertFalse(SystemUtils.IS_OS_WINDOWS);
162 } else if (osName.startsWith("SunOS")) {
163 assertTrue(SystemUtils.IS_OS_SUN_OS);
164 assertTrue(SystemUtils.IS_OS_UNIX);
165 assertFalse(SystemUtils.IS_OS_WINDOWS);
166 } else if (osName.startsWith("FreeBSD")) {
167 assertTrue(SystemUtils.IS_OS_FREE_BSD);
168 assertTrue(SystemUtils.IS_OS_UNIX);
169 assertFalse(SystemUtils.IS_OS_WINDOWS);
170 } else {
171 System.out.println("Can't test IS_OS value: " + osName);
172 }
173 }
174
175 @Test
176 public void test_IS_zOS() {
177 final String osName = System.getProperty("os.name");
178 if (osName == null) {
179 assertFalse(SystemUtils.IS_OS_ZOS);
180 } else if (osName.contains("z/OS")) {
181 assertFalse(SystemUtils.IS_OS_WINDOWS);
182 assertTrue(SystemUtils.IS_OS_ZOS);
183 }
184 }
185
186
187
188
189 @Test
190 public void test_USER_NAME() {
191 assertEquals(System.getProperty("user.name"), SystemUtils.USER_NAME);
192 }
193
194 @Test
195 public void testConstructor() {
196 assertNotNull(new SystemUtils());
197 final Constructor<?>[] cons = SystemUtils.class.getDeclaredConstructors();
198 assertEquals(1, cons.length);
199 assertTrue(Modifier.isPublic(cons[0].getModifiers()));
200 assertTrue(Modifier.isPublic(SystemUtils.class.getModifiers()));
201 assertFalse(Modifier.isFinal(SystemUtils.class.getModifiers()));
202 }
203
204 @Test
205 public void testGetEnvironmentVariableAbsent() {
206 final String name = "THIS_ENV_VAR_SHOULD_NOT_EXIST_FOR_THIS_TEST_TO_PASS";
207 final String expected = System.getenv(name);
208 assertNull(expected);
209 final String value = SystemUtils.getEnvironmentVariable(name, "DEFAULT");
210 assertEquals("DEFAULT", value);
211 }
212
213 @Test
214 public void testGetEnvironmentVariablePresent() {
215 final String name = "PATH";
216 final String expected = System.getenv(name);
217 final String value = SystemUtils.getEnvironmentVariable(name, null);
218 assertEquals(expected, value);
219 }
220
221 @Test
222 public void testGetHostName() {
223 final String hostName = SystemUtils.getHostName();
224 final String expected = SystemUtils.IS_OS_WINDOWS ? System.getenv("COMPUTERNAME") : System.getenv("HOSTNAME");
225 assertEquals(expected, hostName);
226 }
227
228
229
230
231 @Test
232 public void testGetJavaHome() {
233 final File dir = SystemUtils.getJavaHome();
234 assertNotNull(dir);
235 assertTrue(dir.exists());
236 }
237
238
239
240
241 @Test
242 public void testGetJavaIoTmpDir() {
243 final File dir = SystemUtils.getJavaIoTmpDir();
244 assertNotNull(dir);
245 assertTrue(dir.exists());
246 }
247
248
249
250
251 @Test
252 public void testGetUserDir() {
253 final File dir = SystemUtils.getUserDir();
254 assertNotNull(dir);
255 assertTrue(dir.exists());
256 }
257
258
259
260
261 @Test
262 public void testGetUserHome() {
263 final File dir = SystemUtils.getUserHome();
264 assertNotNull(dir);
265 assertTrue(dir.exists());
266 }
267
268
269
270
271 @Test
272 public void testGetUserName() {
273 assertEquals(System.getProperty("user.name"), SystemUtils.getUserName());
274
275 assertEquals(System.getProperty("user.name", "foo"), SystemUtils.getUserName("foo"));
276 }
277
278 @Test
279 public void testIsJavaVersionAtLeast() {
280 if (SystemUtils.IS_JAVA_1_8) {
281 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
282 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
283 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
284 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
285 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
286 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
287 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
288 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
289 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_9));
290 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_10));
291 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
292 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_12));
293 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
294 } else if (SystemUtils.IS_JAVA_9) {
295 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
296 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
297 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
298 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
299 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
300 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
301 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
302 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
303 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
304 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_10));
305 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
306 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_12));
307 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
308 } else if (SystemUtils.IS_JAVA_10) {
309 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
310 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
311 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
312 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
313 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
314 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
315 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
316 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
317 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
318 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
319 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
320 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_12));
321 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
322 } else if (SystemUtils.IS_JAVA_11) {
323 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
324 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
325 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
326 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
327 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
328 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
329 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
330 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
331 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
332 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
333 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_11));
334 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_12));
335 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
336 } else if (SystemUtils.IS_JAVA_12) {
337 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
338 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
339 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
340 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
341 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
342 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
343 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
344 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
345 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
346 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
347 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_11));
348 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_12));
349 assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
350 } else if (SystemUtils.IS_JAVA_13) {
351 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
352 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
353 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
354 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
355 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
356 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
357 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
358 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
359 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
360 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
361 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_11));
362 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_12));
363 assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_13));
364 }
365 }
366
367 @Test
368 public void testIsJavaVersionAtMost() {
369 if (SystemUtils.IS_JAVA_1_8) {
370 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
371 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
372 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
373 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
374 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
375 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
376 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
377 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
378 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_9));
379 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_10));
380 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_11));
381 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
382 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
383 } else if (SystemUtils.IS_JAVA_9) {
384 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
385 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
386 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
387 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
388 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
389 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
390 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
391 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
392 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_9));
393 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_10));
394 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_11));
395 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
396 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
397 } else if (SystemUtils.IS_JAVA_10) {
398 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
399 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
400 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
401 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
402 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
403 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
404 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
405 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
406 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_9));
407 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_10));
408 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_11));
409 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
410 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
411 } else if (SystemUtils.IS_JAVA_11) {
412 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
413 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
414 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
415 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
416 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
417 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
418 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
419 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
420 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_9));
421 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_10));
422 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_11));
423 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
424 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
425 } else if (SystemUtils.IS_JAVA_12) {
426 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
427 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
428 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
429 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
430 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
431 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
432 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
433 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
434 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_9));
435 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_10));
436 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_11));
437 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
438 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
439 } else if (SystemUtils.IS_JAVA_13) {
440 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
441 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
442 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
443 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
444 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
445 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
446 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
447 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
448 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_9));
449 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_10));
450 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_11));
451 assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_12));
452 assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
453 }
454 }
455
456 @Test
457 public void testJavaAwtHeadless() {
458 final String expectedStringValue = System.getProperty("java.awt.headless");
459 final String expectedStringValueWithDefault = System.getProperty("java.awt.headless", "false");
460 assertNotNull(expectedStringValueWithDefault);
461 final boolean expectedValue = Boolean.parseBoolean(expectedStringValue);
462 if (expectedStringValue != null) {
463 assertEquals(expectedStringValue, SystemUtils.JAVA_AWT_HEADLESS);
464 }
465 assertEquals(expectedValue, SystemUtils.isJavaAwtHeadless());
466 assertEquals(expectedStringValueWithDefault, "" + SystemUtils.isJavaAwtHeadless());
467 }
468
469 @Test
470 public void testJavaVersionMatches() {
471 String javaVersion = null;
472 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
473 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
474 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
475 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
476 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
477 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
478 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
479 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
480 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
481 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
482 javaVersion = "";
483 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
484 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
485 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
486 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
487 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
488 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
489 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
490 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
491 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
492 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
493 javaVersion = "1.0";
494 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
495 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
496 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
497 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
498 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
499 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
500 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
501 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
502 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
503 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
504 javaVersion = "1.1";
505 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
506 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
507 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
508 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
509 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
510 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
511 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
512 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
513 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
514 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
515 javaVersion = "1.2";
516 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
517 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
518 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
519 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
520 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
521 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
522 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
523 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
524 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
525 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
526 javaVersion = "1.3.0";
527 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
528 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
529 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
530 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
531 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
532 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
533 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
534 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
535 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
536 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
537 javaVersion = "1.3.1";
538 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
539 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
540 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
541 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
542 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
543 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
544 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
545 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
546 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
547 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
548 javaVersion = "1.4.0";
549 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
550 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
551 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
552 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
553 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
554 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
555 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
556 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
557 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
558 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
559 javaVersion = "1.4.1";
560 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
561 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
562 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
563 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
564 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
565 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
566 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
567 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
568 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
569 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
570 javaVersion = "1.4.2";
571 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
572 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
573 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
574 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
575 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
576 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
577 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
578 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
579 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
580 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
581 javaVersion = "1.5.0";
582 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
583 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
584 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
585 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
586 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
587 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
588 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
589 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
590 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
591 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
592 javaVersion = "1.6.0";
593 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
594 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
595 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
596 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
597 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
598 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
599 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
600 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
601 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
602 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
603 javaVersion = "1.7.0";
604 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
605 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
606 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
607 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
608 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
609 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
610 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
611 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
612 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
613 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
614 javaVersion = "1.8.0";
615 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
616 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
617 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
618 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
619 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
620 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
621 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
622 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
623 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
624 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
625 javaVersion = "9";
626 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
627 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
628 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
629 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
630 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
631 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
632 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
633 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
634 assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
635 assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
636 }
637
638 @Test
639 public void testOSMatchesName() {
640 String osName = null;
641 assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
642 osName = "";
643 assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
644 osName = "Windows 95";
645 assertTrue(SystemUtils.isOSNameMatch(osName, "Windows"));
646 osName = "Windows NT";
647 assertTrue(SystemUtils.isOSNameMatch(osName, "Windows"));
648 osName = "OS/2";
649 assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
650 }
651
652 @Test
653 public void testOSMatchesNameAndVersion() {
654 String osName = null;
655 String osVersion = null;
656 assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
657 osName = "";
658 osVersion = "";
659 assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
660 osName = "Windows 95";
661 osVersion = "4.0";
662 assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
663 osName = "Windows 95";
664 osVersion = "4.1";
665 assertTrue(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
666 osName = "Windows 98";
667 osVersion = "4.1";
668 assertTrue(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
669 osName = "Windows NT";
670 osVersion = "4.0";
671 assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
672 osName = "OS/2";
673 osVersion = "4.0";
674 assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
675 }
676
677 @Test
678 public void testOsVersionMatches() {
679 String osVersion = null;
680 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
681
682 osVersion = "";
683 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
684
685 osVersion = "10";
686 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
687 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
688 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
689 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
690
691 osVersion = "10.1";
692 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
693 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
694 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
695 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
696
697 osVersion = "10.1.1";
698 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
699 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
700 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
701 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
702
703 osVersion = "10.10";
704 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
705 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
706 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
707 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
708
709 osVersion = "10.10.1";
710 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
711 assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
712 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
713 assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
714 }
715 }