Skip to content

Commit 0b7c695

Browse files
committed
xz: add reader benchmark
1 parent 5535077 commit 0b7c695

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

reader_test.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,43 @@ func TestCheckNone(t *testing.T) {
9595
t.Fatalf("io.Copy error %s", err)
9696
}
9797
}
98+
99+
func BenchmarkReader(b *testing.B) {
100+
const testFile = "testdata/enwik7"
101+
data, err := os.ReadFile(testFile)
102+
if err != nil {
103+
b.Fatalf("os.ReadFile(%q) error %s", testFile, err)
104+
}
105+
buf := new(bytes.Buffer)
106+
uncompressedLen := int64(len(data))
107+
b.SetBytes(int64(uncompressedLen))
108+
b.ReportAllocs()
109+
buf.Reset()
110+
w, err := NewWriter(buf)
111+
if err != nil {
112+
b.Fatalf("NewWriter(buf) error %s", err)
113+
}
114+
if _, err = w.Write(data); err != nil {
115+
b.Fatalf("w.Write(data) error %s", err)
116+
}
117+
if err = w.Close(); err != nil {
118+
b.Fatalf("w.Write(data)")
119+
}
120+
data = make([]byte, buf.Len())
121+
copy(data, buf.Bytes())
122+
b.ResetTimer()
123+
for i := 0; i < b.N; i++ {
124+
buf.Reset()
125+
r, err := NewReader(bytes.NewReader(data))
126+
if err != nil {
127+
b.Fatalf("NewReader(data) error %s", err)
128+
}
129+
n, err := io.Copy(buf, r)
130+
if err != nil {
131+
b.Fatalf("io.Copy(buf, r) error %s", err)
132+
}
133+
if n != uncompressedLen {
134+
b.Fatalf("io.Copy got %d; want %d", n, uncompressedLen)
135+
}
136+
}
137+
}

0 commit comments

Comments
 (0)