test roundtrip using io.ReaderFrom interface.
(t *testing.T, file string, wantCRC []byte)
| 572 | |
| 573 | // test roundtrip using io.ReaderFrom interface. |
| 574 | func testEncoderRoundtrip(t *testing.T, file string, wantCRC []byte) { |
| 575 | for _, opt := range getEncOpts(1) { |
| 576 | t.Run(opt.name, func(t *testing.T) { |
| 577 | opt := opt |
| 578 | //t.Parallel() |
| 579 | f, err := os.Open(file) |
| 580 | if err != nil { |
| 581 | if os.IsNotExist(err) { |
| 582 | t.Skip("No input file:", file) |
| 583 | return |
| 584 | } |
| 585 | t.Fatal(err) |
| 586 | } |
| 587 | defer f.Close() |
| 588 | if stat, err := f.Stat(); testing.Short() && err == nil { |
| 589 | if stat.Size() > 10000 { |
| 590 | t.SkipNow() |
| 591 | } |
| 592 | } |
| 593 | input := io.Reader(f) |
| 594 | if strings.HasSuffix(file, ".zst") { |
| 595 | dec, err := NewReader(f) |
| 596 | if err != nil { |
| 597 | t.Fatal(err) |
| 598 | } |
| 599 | input = dec |
| 600 | defer dec.Close() |
| 601 | } |
| 602 | |
| 603 | pr, pw := io.Pipe() |
| 604 | dec2, err := NewReader(pr) |
| 605 | if err != nil { |
| 606 | t.Fatal(err) |
| 607 | } |
| 608 | defer dec2.Close() |
| 609 | |
| 610 | enc, err := NewWriter(pw, opt.o...) |
| 611 | if err != nil { |
| 612 | t.Fatal(err) |
| 613 | } |
| 614 | defer enc.Close() |
| 615 | var wantSize int64 |
| 616 | start := time.Now() |
| 617 | go func() { |
| 618 | n, err := enc.ReadFrom(input) |
| 619 | if err != nil { |
| 620 | t.Error(err) |
| 621 | return |
| 622 | } |
| 623 | wantSize = n |
| 624 | err = enc.Close() |
| 625 | if err != nil { |
| 626 | t.Error(err) |
| 627 | return |
| 628 | } |
| 629 | pw.Close() |
| 630 | }() |
| 631 | var gotSize int64 |
no test coverage detected
searching dependent graphs…