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

Function TestEncoder_EncodeAllEncodeXML

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

Source from the content-addressed store, hash-verified

161}
162
163func TestEncoder_EncodeAllEncodeXML(t *testing.T) {
164 f, err := os.Open("testdata/xml.zst")
165 if err != nil {
166 t.Fatal(err)
167 }
168 defer f.Close()
169
170 dec, err := NewReader(f)
171 if err != nil {
172 t.Fatal(err)
173 }
174 defer dec.Close()
175 in, err := io.ReadAll(dec)
176 if err != nil {
177 t.Fatal(err)
178 }
179 if testing.Short() {
180 in = in[:10000]
181 }
182
183 for level := speedNotSet + 1; level < speedLast; level++ {
184 t.Run(level.String(), func(t *testing.T) {
185 if isRaceTest && level >= SpeedBestCompression {
186 t.SkipNow()
187 }
188 e, err := NewWriter(nil, WithEncoderLevel(level))
189 if err != nil {
190 t.Fatal(err)
191 }
192 defer e.Close()
193 start := time.Now()
194 dst := e.EncodeAll(in, nil)
195 if len(dst) > e.MaxEncodedSize(len(in)) {
196 t.Errorf("max encoded size for %v: got: %d, want max: %d", len(in), len(dst), e.MaxEncodedSize(len(in)))
197 }
198 //t.Log("Simple Encoder len", len(in), "-> zstd len", len(dst))
199 mbpersec := (float64(len(in)) / (1024 * 1024)) / (float64(time.Since(start)) / (float64(time.Second)))
200 t.Logf("Encoded %d bytes with %.2f MB/s", len(in), mbpersec)
201
202 decoded, err := dec.DecodeAll(dst, nil)
203 if err != nil {
204 t.Error(err, len(decoded))
205 }
206 if !bytes.Equal(decoded, in) {
207 os.WriteFile("testdata/"+t.Name()+"-xml.got", decoded, os.ModePerm)
208 t.Error("Decoded does not match")
209 return
210 }
211 //t.Log("Encoded content matched")
212 })
213 }
214}
215
216func TestEncoderRegression(t *testing.T) {
217 defer timeout(4 * time.Minute)()

Callers

nothing calls this directly

Calls 14

CloseMethod · 0.95
CloseMethod · 0.95
WithEncoderLevelFunction · 0.85
FatalMethod · 0.80
EncodeAllMethod · 0.80
MaxEncodedSizeMethod · 0.80
DecodeAllMethod · 0.80
NewReaderFunction · 0.70
NewWriterFunction · 0.70
CloseMethod · 0.65
OpenMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…