pure-zstd/test/fixtures/corpus/manifest.json
Tag d1caf353b3 Bring the decoder over from the project it grew in
Eighteen commits of history, grafted onto the scaffold rather than over
it. It leaves behind everything that only meant something inside that
project: paths under one machine's mount, references to a transcoder
that is not here, and a benchmark defaulting to a tile nobody else has.

One fixture is real terrain and stays, because it is the only small
input that exercises the direct-nibble Huffman weight form. Its licence
requires attribution to travel with it, so the README's
acknowledgements and the corpus manifest both carry the Copernicus
notice now. Everything else committed here is synthetic or was written
by the zstd CLI, including the .hgtz container, whose name looks like a
tile and whose samples are a function of their position.
2026-09-22 19:25:08 -06:00

209 lines
6.6 KiB
JSON

[
{
"name": "twoframes",
"frame": "twoframes.zst",
"command": "python3: pyzstd.compress(A, 3) + pyzstd.compress(B, 3), A = 5000 xorshift64 bytes, B = b'the quick brown fox ' * 500",
"verdict": "legal",
"plain": [
"A.raw.gz",
"B.raw.gz"
],
"size": 15000,
"trailing": "a second complete frame"
},
{
"name": "checksum_good",
"frame": "checksum_good.zst",
"command": "zstd -q -c -3 --check A.bin",
"verdict": "legal",
"plain": [
"A.raw.gz"
],
"size": 5000
},
{
"name": "checksum_flipped",
"frame": "checksum_good.zst",
"command": "zstd -q -c -3 --check A.bin, then the last checksum byte flipped",
"verdict": "refused",
"why": "pyzstd refuses it: ZstdError",
"derive": "the last checksum byte flipped"
},
{
"name": "checksum_zeroed",
"frame": "checksum_good.zst",
"command": "zstd -q -c -3 --check A.bin, then all four checksum bytes zeroed",
"verdict": "refused",
"why": "pyzstd refuses it: ZstdError",
"derive": "all four checksum bytes zeroed"
},
{
"name": "checksum_truncated",
"frame": "checksum_good.zst",
"command": "zstd -q -c -3 --check A.bin, then the last two bytes cut",
"verdict": "refused",
"why": "pyzstd refuses it: ZstdError",
"derive": "the last two bytes cut"
},
{
"name": "fcs_max_u64",
"frame": "fcs_max_u64.zst",
"command": "python3: pyzstd.compress(b'hello world', 3) with the descriptor rewritten to Frame_Content_Size_flag=3 declaring 18446744073709551615",
"verdict": "refused",
"why": "a 27-byte frame asking for a size no allocator will give; pyzstd refuses it: ZstdError"
},
{
"name": "fcs_2p40",
"frame": "fcs_2p40.zst",
"command": "python3: pyzstd.compress(b'hello world', 3) with the descriptor rewritten to Frame_Content_Size_flag=3 declaring 1099511627776",
"verdict": "refused",
"why": "a 27-byte frame asking for a size no allocator will give; pyzstd refuses it: MemoryError"
},
{
"name": "fcs8",
"frame": "fcs8.zst",
"command": "python3: pyzstd.compress(B, 3) with the descriptor rewritten to Frame_Content_Size_flag=3 and an 8-byte size",
"verdict": "legal",
"plain": [
"B.raw.gz"
],
"size": 10000
},
{
"name": "huf_weight_overrun",
"frame": "huf_weight_overrun.zst",
"command": "hand-built: a compressed block whose Huffman weight description is [0x10, 0x3F] and whose FSE weight stream is 33 x 0xAA then 0x02",
"verdict": "refused",
"why": "the weight stream decodes past the 256th weight; pyzstd refuses it: ZstdError"
},
{
"name": "rlelit_fmt0_R31",
"frame": "rlelit_fmt0_R31.zst",
"command": "hand-built: one compressed block, RLE literals Size_Format=0, Regenerated_Size=31, byte 0x5A, Number_of_Sequences=0",
"verdict": "legal",
"plain": [
"rlelit_fmt0_R31.raw.gz"
],
"size": 31
},
{
"name": "rlelit_fmt1_R4000",
"frame": "rlelit_fmt1_R4000.zst",
"command": "hand-built: one compressed block, RLE literals Size_Format=1, Regenerated_Size=4000, byte 0x5A, Number_of_Sequences=0",
"verdict": "legal",
"plain": [
"rlelit_fmt1_R4000.raw.gz"
],
"size": 4000
},
{
"name": "rlelit_fmt2_R70000",
"frame": "rlelit_fmt2_R70000.zst",
"command": "hand-built: one compressed block, RLE literals Size_Format=2, Regenerated_Size=70000, byte 0x5A, Number_of_Sequences=0",
"verdict": "legal",
"plain": [
"rlelit_fmt2_R70000.raw.gz"
],
"size": 70000
},
{
"name": "rlelit_fmt2_R131072",
"frame": "rlelit_fmt2_R131072.zst",
"command": "hand-built: one compressed block, RLE literals Size_Format=2, Regenerated_Size=131072, byte 0x5A, Number_of_Sequences=0",
"verdict": "legal",
"plain": [
"rlelit_fmt2_R131072.raw.gz"
],
"size": 131072
},
{
"name": "mixed_rle_raw",
"frame": "mixed_rle_raw.zst",
"command": "hand-built: [RLE 5000 x 0xAB][raw 33 bytes][RLE 40000 x 0x07] in one frame",
"verdict": "legal",
"plain": [
"mixed_rle_raw.raw.gz"
],
"size": 45033
},
{
"name": "nofcs_windowed",
"frame": "nofcs_windowed.zst",
"command": "zstd -3 --no-check from stdin over b'the quick brown fox jumps over the lazy dog. ' * 24000",
"verdict": "legal",
"plain": [
"text.raw.gz"
],
"size": 1080000,
"expectedSize": 1080000
},
{
"name": "direct_nibble",
"frame": "direct_nibble.zst",
"command": "block 183 of a Copernicus GLO-30 elevation tile transcoded into a .hgtz container, lifted out as its own frame; its literals carry the direct-nibble Huffman weight form",
"verdict": "legal",
"plain": [
"direct_nibble.raw.gz"
],
"size": 131072,
"attribution": "Produced using Copernicus WorldDEM-30 \u00a9 DLR e.V. 2010-2014 and \u00a9 Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved."
},
{
"name": "dictflag",
"frame": "dictflag.zst",
"command": "python3: pyzstd.compress(A, 3) with Dictionary_ID_flag forced to 1 in the frame header descriptor",
"verdict": "refused",
"why": "a dictionary this decoder does not have; pyzstd refuses it: ZstdError"
},
{
"name": "rle_over_max",
"frame": "rle_over_max.zst",
"command": "hand-built: one last RLE block declaring Block_Size 2,000,000",
"verdict": "refused",
"why": "RFC 8878 bounds Block_Size by Block_Maximum_Size, never over 128 KB; libzstd's one-shot decoder accepts it and returns 2 MB"
},
{
"name": "rle_at_max",
"frame": "rle_at_max.zst",
"command": "hand-built: one last RLE block at exactly Block_Maximum_Size, 131072",
"verdict": "legal",
"plain": [
"rle_at_max.raw.gz"
],
"size": 131072
},
{
"name": "lit_one_stream",
"frame": "lit_one_stream.zst",
"command": "zstd -19 -c --no-check over a file holding b'aaadaabaaaddbbaaacabbada'; from a file rather than stdin so the frame declares its own content size",
"verdict": "legal",
"plain": [
"lit_one_stream.raw.gz"
],
"size": 24
},
{
"name": "multiblock_check",
"frame": "multiblock_check.zst",
"command": "python3: pyzstd.compress(body, {level: 9, checksumFlag: 1, targetCBlockSize: 8192}), body = 165,450 bytes of runs",
"verdict": "legal",
"plain": [
"multiblock_check.raw.gz"
],
"size": 165450
},
{
"name": "trailing_junk",
"frame": "trailing_junk.zst",
"command": "hand-built: the lit_one_stream frame with four bytes of junk appended",
"verdict": "refused",
"why": "reading one frame is the whole API, so input left over after it is input this decoder does not understand; it used to be ignored"
},
{
"name": "trailing_skippable",
"frame": "trailing_skippable.zst",
"command": "hand-built: the lit_one_stream frame followed by a skippable frame",
"verdict": "refused",
"why": "a trailing skippable frame was accepted and silently ignored; only a leading one was refused, and only because the magic check fired"
}
]