[11u] RFR 8230870: (zipfs) Add a ZIP FS test that is similar to test/jdk/java/util/zip/EntryCount64k.java
Martin Buchholz
martinrb at google.com
Fri Jul 31 17:27:44 UTC 2020
LGTM
On Fri, Jul 31, 2020 at 4:15 AM Aleksey Shipilev <shade at redhat.com> wrote:
>
> Original fix:
> https://bugs.openjdk.java.net/browse/JDK-8230870
> https://hg.openjdk.java.net/jdk/jdk/rev/6a05019acb67
>
> More tests for 11u! Unfortunately, it does not compile in 11u, because some FileSystem APIs are not
> there. 11u webrev:
> https://cr.openjdk.java.net/~shade/8230870/webrev.11u.01/
>
> Testing: new test, tier{1,2}
>
> The fix for 11u was like this:
>
> diff -r f9225bbdf0c0 test/jdk/jdk/nio/zipfs/LargeEntriesTest.java
> --- a/test/jdk/jdk/nio/zipfs/LargeEntriesTest.java Tue Sep 17 14:00:36 2019 -0400
> +++ b/test/jdk/jdk/nio/zipfs/LargeEntriesTest.java Fri Jul 31 10:45:51 2020 +0200
> @@ -23,15 +23,17 @@
> */
>
> import org.testng.annotations.*;
>
> import java.io.*;
> +import java.net.URI;
> import java.nio.charset.StandardCharsets;
> import java.nio.file.FileSystem;
> import java.nio.file.*;
> import java.security.SecureRandom;
> import java.util.Arrays;
> +import java.util.Collections;
> import java.util.Map;
> import java.util.function.Consumer;
> import java.util.zip.ZipEntry;
> import java.util.zip.ZipFile;
>
> @@ -209,12 +211,14 @@
> * @throws IOException If an error occurs while creating the ZIP file
> */
> private void createZipFile(Path zipFile, Map<String, String> env,
> int entries) throws IOException {
> System.out.printf("Creating file = %s%n", zipFile);
> +
> + URI uri = URI.create("jar:" + zipFile.toUri());
> try (FileSystem zipfs =
> - FileSystems.newFileSystem(zipFile, env)) {
> + FileSystems.newFileSystem(uri, env)) {
>
> for (int i = 0; i < entries; i++) {
> Files.writeString(zipfs.getPath("Entry-" + i), ZIP_FILE_VALUE);
> }
> }
> @@ -238,12 +242,13 @@
> + System.lineSeparator()
> + "Main-Class: " + MANIFEST_MAIN_CLASS
> + System.lineSeparator()
> + "Created-By: " + jdkVersion + " (" + jdkVendor + ")";
>
> + URI uri = URI.create("jar:" + zipFile.toUri());
> try (FileSystem zipfs =
> - FileSystems.newFileSystem(zipFile, env);
> + FileSystems.newFileSystem(uri, env);
> InputStream in = new ByteArrayInputStream(manifest.getBytes())) {
>
> // Get ZIP FS path to META-INF/MANIFEST.MF
> Path metadir = zipfs.getPath("/", "META-INF");
> Path manifestFile = metadir.resolve("MANIFEST.MF");
> @@ -329,11 +334,12 @@
> assertTrue(Arrays.equals(bytes, ZIP_FILE_ENTRY));
> }
> }
> }
> // check entries with FileSystem API
> - try (FileSystem fs = FileSystems.newFileSystem(zipfile)) {
> + URI uri = URI.create("jar:" + zipfile.toUri());
> + try (FileSystem fs = FileSystems.newFileSystem(uri, Collections.emptyMap())) {
>
> // check entry count
> Path top = fs.getPath("/");
> long count = Files.find(top, Integer.MAX_VALUE, (path, attrs) ->
> attrs.isRegularFile() || (attrs.isDirectory() &&
>
> --
> Thanks,
> -Aleksey
>
More information about the jdk-updates-dev
mailing list