ref: d119343e8e7c83a56f87b05249ff0094aa2298a5
dir: /internal/flatex/decompress_test.go/
package flatex
import (
"bytes"
stdflate "compress/flate"
"testing"
)
func compressDeflate(t *testing.T, payload []byte) []byte {
t.Helper()
var buf bytes.Buffer
w, err := stdflate.NewWriter(&buf, stdflate.DefaultCompression)
if err != nil {
t.Fatalf("NewWriter: %v", err)
}
if _, err := w.Write(payload); err != nil {
t.Fatalf("Write: %v", err)
}
if err := w.Close(); err != nil {
t.Fatalf("Close: %v", err)
}
return buf.Bytes()
}
func TestDecompress(t *testing.T) {
payload := bytes.Repeat([]byte("golang"), 32)
compressed := compressDeflate(t, payload)
out, _, err := Decompress(compressed)
if err != nil {
t.Fatalf("Decompress: %v", err)
}
defer out.Release()
if !bytes.Equal(out.Bytes(), payload) {
t.Fatalf("unexpected payload: got %q", out.Bytes())
}
}
func TestDecompressSizedUsesHint(t *testing.T) {
payload := []byte("short")
compressed := compressDeflate(t, payload)
const hint = 1 << 19
out, _, err := DecompressSized(compressed, hint)
if err != nil {
t.Fatalf("DecompressSized: %v", err)
}
defer out.Release()
if !bytes.Equal(out.Bytes(), payload) {
t.Fatalf("unexpected payload: got %q", out.Bytes())
}
if cap(out.Bytes()) < hint {
t.Fatalf("expected capacity >= %d, got %d", hint, cap(out.Bytes()))
}
}