diff --git a/flate/fuzz_test.go b/flate/fuzz_test.go index 9f20a8775d..0bd95ff8a5 100644 --- a/flate/fuzz_test.go +++ b/flate/fuzz_test.go @@ -22,14 +22,19 @@ func FuzzEncoding(f *testing.F) { startFuzz = HuffmanOnly endFuzz = BestCompression - // Also tests with dictionaries... - testDicts = true - // Max input size: maxSize = 1 << 20 ) decoder := NewReader(nil) buf := new(bytes.Buffer) + encs := make([]*Writer, endFuzz-startFuzz+1) + for i := range encs { + var err error + encs[i], err = NewWriter(nil, i+startFuzz) + if err != nil { + f.Fatal(err.Error()) + } + } f.Fuzz(func(t *testing.T, data []byte) { if len(data) > maxSize { @@ -38,10 +43,8 @@ func FuzzEncoding(f *testing.F) { for level := startFuzz; level <= endFuzz; level++ { msg := "level " + strconv.Itoa(level) + ":" buf.Reset() - fw, err := NewWriter(buf, level) - if err != nil { - t.Fatal(msg + err.Error()) - } + fw := encs[level-startFuzz] + fw.Reset(buf) n, err := fw.Write(data) if n != len(data) { t.Fatal(msg + "short write") diff --git a/flate/testdata/fuzz/FuzzEncoding.zip b/flate/testdata/fuzz/FuzzEncoding.zip index 5af4b5bb64..feae35f15f 100644 Binary files a/flate/testdata/fuzz/FuzzEncoding.zip and b/flate/testdata/fuzz/FuzzEncoding.zip differ diff --git a/zstd/fuzz_test.go b/zstd/fuzz_test.go index 3a79d808bc..1099b41ce7 100644 --- a/zstd/fuzz_test.go +++ b/zstd/fuzz_test.go @@ -146,14 +146,14 @@ func FuzzEncoding(f *testing.F) { initEnc := func() func() { var err error - dec, err = NewReader(nil, WithDecoderConcurrency(2), WithDecoderDicts(dicts...), WithDecoderMaxWindow(128<<10), WithDecoderMaxMemory(maxSize)) + dec, err = NewReader(nil, WithDecoderConcurrency(2), WithDecoderDicts(dicts...), WithDecoderMaxWindow(64<<10), WithDecoderMaxMemory(maxSize)) if err != nil { panic(err) } for level := startFuzz; level <= endFuzz; level++ { - encs[level], err = NewWriter(nil, WithEncoderCRC(true), WithEncoderLevel(level), WithEncoderConcurrency(2), WithWindowSize(128<<10), WithZeroFrames(true), WithLowerEncoderMem(true)) + encs[level], err = NewWriter(nil, WithEncoderCRC(true), WithEncoderLevel(level), WithEncoderConcurrency(2), WithWindowSize(64<<10), WithZeroFrames(true), WithLowerEncoderMem(true)) if testDicts { - encsD[level], err = NewWriter(nil, WithEncoderCRC(true), WithEncoderLevel(level), WithEncoderConcurrency(2), WithWindowSize(128<<10), WithZeroFrames(true), WithEncoderDict(dicts[0]), WithLowerEncoderMem(true), WithLowerEncoderMem(true)) + encsD[level], err = NewWriter(nil, WithEncoderCRC(true), WithEncoderLevel(level), WithEncoderConcurrency(2), WithWindowSize(64<<10), WithZeroFrames(true), WithEncoderDict(dicts[level]), WithLowerEncoderMem(true), WithLowerEncoderMem(true)) } } return func() {