RFR: 8303972: Make test/jdk/jdk/nio/zipfs/TestLocOffsetFromZip64EF.java independent of the zip command line [v6]
Eirik Bjorsnos
duke at openjdk.org
Fri Mar 24 07:34:24 UTC 2023
> Please review this PR which brings the currenly problem-listed test TestLocOffsetFromZip64EF back to life.
>
> Instead of calling out to the `zip` command line, we produce a small-sized Zip64 file in the test itself. This file has the features required to reproduce the ZipFileSystem issue, namely that the 'INFO-ZIP extended timestamp' field must come before the 'Zip64 extended information' field. (This would casue ZipFileSystem to read the LOC at position 0xFFFFFFFF).
>
> This speed up the test (from 50s to 3s on my Macbook Pro), saves 4GB disk space during builds removes a dependency on the `zip` command in OS/distros.
>
> Seee [JDK-8301183](https://bugs.openjdk.org/browse/JDK-8301183) for details on the problem-listing.
Eirik Bjorsnos has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains ten additional commits since the last revision:
- Add a third DEFLATED entry to the test ZIP. Look up CEN offset from END header instead of skipping LOC headers. Add asserts that verifies that the ZIP has the expected entries.
- Merge branch 'master' into loc-offset-zip64-sparse
- Add extra entry as a sanity check. Extract some constants for sizes and extract method makeOpaqueExtraField to allow some more in-depth commenting. Move extra field processing until after the LOC headers are written, such that this information only occurs in the CEN
- APPNOTE.txt actually specifies an 'unknown' tag, let's use that instead of 0x42
- The Zip64 fields are all zero, we don't need to update them
- Instead of making a big file to force Zip64, make a small file with a Zip64-formatted CEN header.
- Remove accidentally introduced blank line
- Merge branch 'master' into loc-offset-zip64-sparse
- Rewrite TestLocOffsetFromZip64EF to create ZIP file using sparse ZipOutputStream instead of calling out to the ZIP command line
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/12979/files
- new: https://git.openjdk.org/jdk/pull/12979/files/2fc841df..7949f7d8
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=12979&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=12979&range=04-05
Stats: 84665 lines in 1081 files changed: 51366 ins; 22403 del; 10896 mod
Patch: https://git.openjdk.org/jdk/pull/12979.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/12979/head:pull/12979
PR: https://git.openjdk.org/jdk/pull/12979
More information about the nio-dev
mailing list