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

Function testEncoderRoundtripWriter

zstd/encoder_test.go:676–762  ·  view source on GitHub ↗

test roundtrip using plain io.Writer interface.

(t *testing.T, file string, wantCRC []byte)

Source from the content-addressed store, hash-verified

674
675// test roundtrip using plain io.Writer interface.
676func testEncoderRoundtripWriter(t *testing.T, file string, wantCRC []byte) {
677 f, err := os.Open(file)
678 if err != nil {
679 if os.IsNotExist(err) {
680 t.Skip("No input file:", file)
681 return
682 }
683 t.Fatal(err)
684 }
685 defer f.Close()
686 if stat, err := f.Stat(); testing.Short() && err == nil {
687 if stat.Size() > 10000 {
688 t.SkipNow()
689 }
690 }
691 input := io.Reader(f)
692 if strings.HasSuffix(file, ".zst") {
693 dec, err := NewReader(f)
694 if err != nil {
695 t.Fatal(err)
696 }
697 input = dec
698 defer dec.Close()
699 }
700
701 pr, pw := io.Pipe()
702 dec2, err := NewReader(pr)
703 if err != nil {
704 t.Fatal(err)
705 }
706 defer dec2.Close()
707
708 enc, err := NewWriter(pw, WithEncoderCRC(true))
709 if err != nil {
710 t.Fatal(err)
711 }
712 defer enc.Close()
713 encW := writerWrapper{w: enc}
714 var wantSize int64
715 start := time.Now()
716 go func() {
717 n, err := io.CopyBuffer(encW, input, make([]byte, 1337))
718 if err != nil {
719 t.Error(err)
720 return
721 }
722 wantSize = n
723 err = enc.Close()
724 if err != nil {
725 t.Error(err)
726 return
727 }
728 pw.Close()
729 }()
730 var gotSize int64
731
732 // Check CRC
733 d := xxhash.New()

Callers 6

TestEncoder_EncoderXMLFunction · 0.85
TestEncoder_EncoderTwainFunction · 0.85
TestEncoder_EncoderPiFunction · 0.85
TestEncoder_EncoderHTMLFunction · 0.85

Calls 15

CloseMethod · 0.95
CloseMethod · 0.95
NewFunction · 0.92
WithEncoderCRCFunction · 0.85
SkipMethod · 0.80
FatalMethod · 0.80
CopyMethod · 0.80
CreateMethod · 0.80
SumMethod · 0.80
NewReaderFunction · 0.70
NewWriterFunction · 0.70
CloseMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…