package freenet.support; import junit.framework.Assert; import junit.framework.TestCase; public class JVMVersionTest extends TestCase { public void testTooOld() { Assert.assertTrue(JVMVersion.isTooOld("1.6.0_32")); Assert.assertTrue(JVMVersion.isTooOld("1.6")); Assert.assertTrue(JVMVersion.isTooOld("1.5")); Assert.assertTrue(JVMVersion.isTooOld("1.7.0_65")); Assert.assertTrue(JVMVersion.isTooOld("1.7")); } public void testRecentEnough() { Assert.assertFalse(JVMVersion.isTooOld("1.8.0_9")); Assert.assertFalse(JVMVersion.isTooOld("9-ea")); Assert.assertFalse(JVMVersion.isTooOld("10")); } public void testNull() { Assert.assertFalse(JVMVersion.isTooOld(null)); } public void testCompare() { String[] orderedVersions = new String[] { "bogus", // Bogus versions are treated as 0.0.0_0 "1.5", "1.6.0", "1.6.0_32", "1.7", "1.7.0_59", "1.7.0_65", "1.7.1", "1.7.1_1", "1.7.1_09", "1.7.1_65-rc4", "1.7.2-ea", "1.7.3_0", "1.8-beta", "9-ea", "9.0.1.0", "9.0.1.1.0.1-ea", "9.2", "10", "10.0.2" }; // Compare all combinations and check correctness of their ordering for (int i = 0; i < orderedVersions.length; i++) { String v1 = orderedVersions[i]; for (int j = 0; j < orderedVersions.length; j++) { String v2 = orderedVersions[j]; int expected = Integer.signum(Integer.valueOf(i).compareTo(Integer.valueOf(j))); int actual = Integer.signum(JVMVersion.compareVersion(v1, v2)); assertEquals(v1 + " <> " + v2, expected, actual); } } } }