(t *testing.T)
| 214 | } |
| 215 | |
| 216 | func 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 |
nothing calls this directly
no test coverage detected
searching dependent graphs…