MCPcopy
hub / github.com/klauspost/compress / TestEncoderRegression

Function TestEncoderRegression

zstd/encoder_test.go:216–304  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

214}
215
216func TestEncoderRegression(t *testing.T) {
217 defer timeout(4 * time.Minute)()
218 data, err := os.ReadFile("testdata/comp-crashers.zip")
219 if err != nil {
220 t.Fatal(err)
221 }
222 // We can't close the decoder.
223 dec, err := NewReader(nil)
224 if err != nil {
225 t.Error(err)
226 return
227 }
228 defer dec.Close()
229 for _, opts := range getEncOpts(2) {
230 t.Run(opts.name, func(t *testing.T) {
231 zr, err := zip.NewReader(bytes.NewReader(data), int64(len(data)))
232 if err != nil {
233 t.Fatal(err)
234 }
235 enc, err := NewWriter(
236 nil,
237 opts.o...,
238 )
239 if err != nil {
240 t.Fatal(err)
241 }
242 defer enc.Close()
243
244 for i, tt := range zr.File {
245 if !strings.HasSuffix(t.Name(), "") {
246 continue
247 }
248 if testing.Short() && i > 10 {
249 break
250 }
251
252 t.Run(tt.Name, func(t *testing.T) {
253 r, err := tt.Open()
254 if err != nil {
255 t.Error(err)
256 return
257 }
258 in, err := io.ReadAll(r)
259 if err != nil {
260 t.Error(err)
261 }
262 encoded := enc.EncodeAll(in, nil)
263 if len(encoded) > enc.MaxEncodedSize(len(in)) {
264 t.Errorf("max encoded size for %v: got: %d, want max: %d", len(in), len(encoded), enc.MaxEncodedSize(len(in)))
265 }
266 // Usually too small...
267 got, err := dec.DecodeAll(encoded, make([]byte, 0, len(in)))
268 if err != nil {
269 t.Logf("error: %v\nwant: %v\ngot: %v", err, len(in), len(got))
270 t.Fatal(err)
271 }
272 // Use the Writer
273 var dst bytes.Buffer

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
CloseMethod · 0.95
WriteMethod · 0.95
NewReaderFunction · 0.92
timeoutFunction · 0.85
getEncOptsFunction · 0.85
FatalMethod · 0.80
EncodeAllMethod · 0.80
MaxEncodedSizeMethod · 0.80
DecodeAllMethod · 0.80
ResetContentSizeMethod · 0.80
NewReaderFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…