pure-zstd/test
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 57aa532069
Decode frames that declare no content size
Streaming encoders leave Frame_Content_Size out unless told the size up front,
and their readers often can't know it either: every zstd frame in an Anki
package (its collection, its media list, each media file) is written that way.
Such a frame needed the exact size passed as expectedSize, and anything else
was refused.

Now it gets the most its blocks can hold, Block_Maximum_Size (128 KiB) each,
found by walking the block headers alone, and the output is trimmed to what
the blocks held. The output is still allocated once. expectedSize keeps its
exact check when given, and maxOutputSize bounds the allocation as before.

Checked against libzstd (python-zstandard) on Anki 26.09.3's exports: a small
package's four frames and a 30 MB collection decode byte for byte the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:09:51 +02:00
..
fixtures Bring the decoder over from the project it grew in 2026-09-22 19:25:08 -06:00
corpus.dart Decode the corpus against pyzstd, never against ourselves 2026-09-21 23:20:51 -06:00
corpus_test.dart Decode frames that declare no content size 2026-10-02 05:09:51 +02:00
fse_interleaved_test.dart Test the guards that had no test 2026-09-22 00:06:35 -06:00
hgtz_block_test.dart Bring the decoder over from the project it grew in 2026-09-22 19:25:08 -06:00
libzstd_shapes_test.dart Format with Dart 3.13 2026-09-22 20:04:14 -06:00
shared_decoder_test.dart Run one decoder over mixed frames in both orders 2026-09-21 23:20:53 -06:00
xxhash_test.dart Add XXH64 so the content checksum can be verified 2026-09-21 23:10:44 -06:00