RFR: 8304013: Add a fast, non-manual alternative to test/jdk/java/util/zip/ZipFile/TestTooManyEntries [v4]
Eirik Bjorsnos
duke at openjdk.org
Sat Mar 25 16:04:34 UTC 2023
On Sat, 25 Mar 2023 12:12:21 GMT, Eirik Bjorsnos <duke at openjdk.org> wrote:
>> The TestTooManyEntries test was originally added to validate that ZIP64 files with CEN sizes exceeding what ZipFile supports are rejected with a ZipException. The test does this by creating a large ZIP file (several gigabytes) with many enties. Because this is resource intensive, the test is currently tagged as manual. (See #6927)
>>
>> It would be useful to have a test which asserts the CEN size enforcement, but without the CPU, disk, memory and run time requirements of TestTooManyEntries. Such a fast test can run non-manual, without the @requires and manual tags as found in TestTooManyEntries.
>>
>> This PR adds the EndOfCenValidation test which creates sparse test ZIPs where the CEN is "inflated" such that is matches the size declared in the "End of central directory" records.
>>
>> While thee sparse files look large, they consume very little disk space on file systems supporting sparse files:
>>
>>
>> 16 -rw-r--r-- 1 2147483702 Feb 6 18:54 bad-cen-offset.zip
>> 16 -rw-r--r-- 1 2147483703 Feb 6 18:54 cen-size-too-large.zip
>> 8 -rw-r--r-- 1 132 Feb 6 18:54 invalid-zen-size.zip
>> ```
>>
>> For good measure, two new test methods are added to excercise the remaining ZipExceptions which ZipFile may throw during validation of the END record .
>
> Eirik Bjorsnos has updated the pull request incrementally with one additional commit since the last revision:
>
> Consistently refer to the ultimate ZIP header/record like this: 'End of central directory record' (END header)
Thanks Lance! Allow me to underline just how much I appreciate that we can have differences of opinion while still being friends and making productive progress. Looking around the world, this is not always a given. I see this as a sign of a healty community.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/12231#issuecomment-1483857855
More information about the core-libs-dev
mailing list