[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