--- a/test/jdk/jdk/nio/zipfs/jarfs/MultiReleaseJarTest.java Thu Nov 21 23:32:11 2019 -0500
+++ b/test/jdk/jdk/nio/zipfs/jarfs/MultiReleaseJarTest.java Fri Nov 22 09:25:09 2019 +0100
@@ -50,6 +50,8 @@
public class MultiReleaseJarTest {
final private int MAJOR_VERSION = Runtime.version().feature();
+ private static final String PROPERTY_RELEASE_VERSION = "releaseVersion";
+ private static final String PROPERTY_MULTI_RELEASE = "multi-release";
final private String userdir = System.getProperty("user.dir",".");
final private CreateMultiReleaseTestJars creator = new CreateMultiReleaseTestJars();
@@ -88,56 +90,56 @@
@DataProvider(name="strings")
public Object[][] createStrings() {
return new Object[][]{
- {"runtime", MAJOR_VERSION},
- {null, 8},
- {"8", 8},
- {"9", 9},
- {Integer.toString(MAJOR_VERSION), MAJOR_VERSION},
- {Integer.toString(MAJOR_VERSION+1), MAJOR_VERSION},
- {"50", MAJOR_VERSION}
+ {"runtime", MAJOR_VERSION, "8"},
+ {null, 8, Integer.toString(MAJOR_VERSION)},
+ {"8", 8, "9"},
+ {"9", 9, null},
+ {Integer.toString(MAJOR_VERSION), MAJOR_VERSION, "8"},
+ {Integer.toString(MAJOR_VERSION+1), MAJOR_VERSION, "8"},
+ {"50", MAJOR_VERSION, "9"}
};
}
@DataProvider(name="integers")
public Object[][] createIntegers() {
return new Object[][] {
- {null, 8},
- {Integer.valueOf(8), 8},
- {Integer.valueOf(9), 9},
- {Integer.valueOf(MAJOR_VERSION), MAJOR_VERSION},
- {Integer.valueOf(MAJOR_VERSION + 1), MAJOR_VERSION},
- {Integer.valueOf(100), MAJOR_VERSION}
+ {null, 8, Integer.valueOf(9)},
+ {Integer.valueOf(8), 8, Integer.valueOf(9)},
+ {Integer.valueOf(9), 9, Integer.valueOf(MAJOR_VERSION)},
+ {Integer.valueOf(MAJOR_VERSION), MAJOR_VERSION, Integer.valueOf(8)},
+ {Integer.valueOf(MAJOR_VERSION + 1), MAJOR_VERSION, null},
+ {Integer.valueOf(100), MAJOR_VERSION, Integer.valueOf(8)}
};
}
@DataProvider(name="versions")
public Object[][] createVersions() {
return new Object[][] {
- {null, 8},
- {Version.parse("8"), 8},
- {Version.parse("9"), 9},
- {Version.parse(Integer.toString(MAJOR_VERSION)), MAJOR_VERSION},
- {Version.parse(Integer.toString(MAJOR_VERSION) + 1), MAJOR_VERSION},
- {Version.parse("100"), MAJOR_VERSION}
+ {null, 8, Version.parse("14")},
+ {Version.parse("8"), 8, Version.parse("7")},
+ {Version.parse("9"), 9, null},
+ {Version.parse(Integer.toString(MAJOR_VERSION)), MAJOR_VERSION, Version.parse("8")},
+ {Version.parse(Integer.toString(MAJOR_VERSION) + 1), MAJOR_VERSION, Version.parse("9")},
+ {Version.parse("100"), MAJOR_VERSION, Version.parse("14")}
};
}
@DataProvider(name="invalidVersions")
public Object[][] invalidVersions() {
return new Object[][] {
- {Map.of("releaseVersion", "")},
- {Map.of("releaseVersion", "invalid")},
- {Map.of("releaseVersion", "0")},
- {Map.of("releaseVersion", "-1")},
- {Map.of("releaseVersion", "11.0.1")},
- {Map.of("releaseVersion", new ArrayList<Long>())},
- {Map.of("releaseVersion", Integer.valueOf(0))},
- {Map.of("releaseVersion", Integer.valueOf(-1))}
+ {Map.of(PROPERTY_RELEASE_VERSION, "")},
+ {Map.of(PROPERTY_RELEASE_VERSION, "invalid")},
+ {Map.of(PROPERTY_RELEASE_VERSION, "0")},
+ {Map.of(PROPERTY_RELEASE_VERSION, "-1")},
+ {Map.of(PROPERTY_RELEASE_VERSION, "11.0.1")},
+ {Map.of(PROPERTY_RELEASE_VERSION, new ArrayList<Long>())},
+ {Map.of(PROPERTY_RELEASE_VERSION, Integer.valueOf(0))},
+ {Map.of(PROPERTY_RELEASE_VERSION, Integer.valueOf(-1))}
};
}
- // Not the best test but all I can do since ZipFileSystem and JarFileSystem
- // are not public, so I can't use (fs instanceof ...)
+ // Not the best test but all I can do since ZipFileSystem
+ // is not public, so I can't use (fs instanceof ...)
@Test
public void testNewFileSystem() throws Exception {
Map<String,String> env = new HashMap<>();
@@ -145,7 +147,7 @@
try (FileSystem fs = FileSystems.newFileSystem(mruri, env)) {
Assert.assertTrue(readAndCompare(fs, 8));
}
- env.put("releaseVersion", "runtime");
+ env.put(PROPERTY_RELEASE_VERSION, "runtime");
// a configuration and jar file is multi-release
try (FileSystem fs = FileSystems.newFileSystem(mruri, env)) {
Assert.assertTrue(readAndCompare(fs, MAJOR_VERSION));
@@ -163,28 +165,38 @@
}
@Test(dataProvider="strings")
- public void testStrings(String value, int expected) throws Throwable {
- stringEnv.put("releaseVersion", value);
+ public void testStrings(String value, int expected, String ignorable) throws Throwable {
+ stringEnv.clear();
+ stringEnv.put(PROPERTY_RELEASE_VERSION, value);
+ // we check, that values for "multi-release" are ignored
+ stringEnv.put(PROPERTY_MULTI_RELEASE, ignorable);
runTest(stringEnv, expected);
}
@Test(dataProvider="integers")
- public void testIntegers(Integer value, int expected) throws Throwable {
- integerEnv.put("releaseVersion", value);
+ public void testIntegers(Integer value, int expected, Integer ignorable) throws Throwable {
+ integerEnv.clear();
+ integerEnv.put(PROPERTY_RELEASE_VERSION, value);
+ // we check, that values for "multi-release" are ignored
+ integerEnv.put(PROPERTY_MULTI_RELEASE, value);
runTest(integerEnv, expected);
}
@Test(dataProvider="versions")
- public void testVersions(Version value, int expected) throws Throwable {
- versionEnv.put("releaseVersion", value);
+ public void testVersions(Version value, int expected, Version ignorable) throws Throwable {
+ versionEnv.clear();
+ versionEnv.put(PROPERTY_RELEASE_VERSION, value);
+ // we check, that values for "multi-release" are ignored
+ versionEnv.put(PROPERTY_MULTI_RELEASE, ignorable);
runTest(versionEnv, expected);
}
@Test
public void testShortJar() throws Throwable {
- integerEnv.put("releaseVersion", Integer.valueOf(MAJOR_VERSION));
+ integerEnv.clear();
+ integerEnv.put(PROPERTY_RELEASE_VERSION, Integer.valueOf(MAJOR_VERSION));
runTest(smruri, integerEnv, MAJOR_VERSION);
- integerEnv.put("releaseVersion", Integer.valueOf(9));
+ integerEnv.put(PROPERTY_RELEASE_VERSION, Integer.valueOf(9));
runTest(smruri, integerEnv, 8);
}
@@ -205,23 +217,23 @@
// The following tests are for backwards compatibility to validate that
// the original property still works
@Test(dataProvider="strings")
- public void testMRStrings(String value, int expected) throws Throwable {
+ public void testMRStrings(String value, int expected, String ignorable) throws Throwable {
stringEnv.clear();
- stringEnv.put("multi-release", value);
+ stringEnv.put(PROPERTY_MULTI_RELEASE, value);
runTest(stringEnv, expected);
}
@Test(dataProvider="integers")
- public void testMRIntegers(Integer value, int expected) throws Throwable {
+ public void testMRIntegers(Integer value, int expected, Integer ignorable) throws Throwable {
integerEnv.clear();
- integerEnv.put("multi-release", value);
+ integerEnv.put(PROPERTY_MULTI_RELEASE, value);
runTest(integerEnv, expected);
}
@Test(dataProvider="versions")
- public void testMRVersions(Version value, int expected) throws Throwable {
+ public void testMRVersions(Version value, int expected, Version ignorable) throws Throwable {
versionEnv.clear();
- versionEnv.put("multi-release", value);
+ versionEnv.put(PROPERTY_MULTI_RELEASE, value);
runTest(versionEnv, expected);
}
@@ -264,7 +276,7 @@
JarBuilder jb = new JarBuilder(jfname);
jb.addAttribute("Multi-Release", "true");
jb.build();
- Map<String,String> env = Map.of("releaseVersion", "runtime");
+ Map<String,String> env = Map.of(PROPERTY_RELEASE_VERSION, "runtime");
try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {
Assert.assertTrue(true);
}
@@ -279,7 +291,7 @@
creator.buildCustomMultiReleaseJar(fileName, value, Map.of(),
/*addEntries*/true);
- Map<String,String> env = Map.of("releaseVersion", "runtime");
+ Map<String,String> env = Map.of(PROPERTY_RELEASE_VERSION, "runtime");
Path filePath = Paths.get(userdir, fileName);
String ssp = filePath.toUri().toString();
URI customJar = new URI("jar", ssp , null);