Build a zstd corpus for the branches real tiles miss
The only fixture was one .hgtz container written by one producer at level 19. An audit ran 16,490 real blocks through an instrumented decoder and found thirteen branches of RFC 8878 that corpus never reaches at all: raw blocks, RLE blocks, RLE literals, treeless literals at the three-byte size format, frames with no content size, frames with a checksum, the one and eight byte content sizes, the three-byte sequence count, a block with no sequences, and RLE sequence tables for literal and match length. make_corpus.py builds frames for them, either through libzstd or by hand and then past pyzstd for a verdict, so legal and malformed are libzstd's opinion rather than ours. The expected plain bytes of a legal frame are whatever pyzstd decompressed it to, gzipped to keep the fixture small, and the manifest records the exact command behind every frame. 46 KB in all.
This commit is contained in:
parent
724e9b0433
commit
3c9f035b7f
1 changed files with 544 additions and 0 deletions
BIN
test/fixtures/corpus/fcs8.zst
vendored
Normal file
BIN
test/fixtures/corpus/fcs8.zst
vendored
Normal file
Binary file not shown.
Loading…
Reference in a new issue