MCPcopy Index your code
hub / github.com/klauspost/compress / TestDecoder_Reset

Function TestDecoder_Reset

zstd/decoder_test.go:844–909  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

842}
843
844func TestDecoder_Reset(t *testing.T) {
845 in, err := os.ReadFile("testdata/z000028")
846 if err != nil {
847 t.Fatal(err)
848 }
849 in = append(in, in...)
850 var e Encoder
851 start := time.Now()
852 dst := e.EncodeAll(in, nil)
853 t.Log("Simple Encoder len", len(in), "-> zstd len", len(dst))
854 mbpersec := (float64(len(in)) / (1024 * 1024)) / (float64(time.Since(start)) / (float64(time.Second)))
855 t.Logf("Encoded %d bytes with %.2f MB/s", len(in), mbpersec)
856
857 dec, err := NewReader(nil)
858 if err != nil {
859 t.Fatal(err)
860 }
861 defer dec.Close()
862 decoded, err := dec.DecodeAll(dst, nil)
863 if err != nil {
864 t.Error(err, len(decoded))
865 }
866 if !bytes.Equal(decoded, in) {
867 t.Logf("size = %d, got = %d", len(decoded), len(in))
868 t.Fatal("Decoded does not match")
869 }
870 t.Log("Encoded content matched")
871
872 // Decode using reset+copy
873 for range 3 {
874 err = dec.Reset(bytes.NewBuffer(dst))
875 if err != nil {
876 t.Fatal(err)
877 }
878 var dBuf bytes.Buffer
879 n, err := io.Copy(&dBuf, dec)
880 if err != nil {
881 t.Fatal(err)
882 }
883 decoded = dBuf.Bytes()
884 if int(n) != len(decoded) {
885 t.Fatalf("decoded reported length mismatch %d != %d", n, len(decoded))
886 }
887 if !bytes.Equal(decoded, in) {
888 os.WriteFile("testdata/"+t.Name()+"-z000028.got", decoded, os.ModePerm)
889 os.WriteFile("testdata/"+t.Name()+"-z000028.want", in, os.ModePerm)
890 t.Fatal("Decoded does not match")
891 }
892 }
893 // Test without WriterTo interface support.
894 for range 3 {
895 err = dec.Reset(bytes.NewBuffer(dst))
896 if err != nil {
897 t.Fatal(err)
898 }
899 decoded, err := io.ReadAll(io.NopCloser(dec))
900 if err != nil {
901 t.Fatal(err)

Callers

nothing calls this directly

Calls 10

EncodeAllMethod · 0.95
CloseMethod · 0.95
ResetMethod · 0.95
FatalMethod · 0.80
DecodeAllMethod · 0.80
CopyMethod · 0.80
NewReaderFunction · 0.70
BytesMethod · 0.65
ErrorMethod · 0.45
NameMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…