@@ -2,8 +2,11 @@ package lz4_test
2
2
3
3
import (
4
4
"bytes"
5
+ "compress/gzip"
5
6
"io"
6
7
"io/ioutil"
8
+ "os"
9
+ "strings"
7
10
"testing"
8
11
9
12
"github.com/pierrec/lz4/v4"
@@ -68,23 +71,28 @@ func BenchmarkUncompress(b *testing.B) {
68
71
}
69
72
70
73
func mustLoadFile (f string ) []byte {
71
- b , err := ioutil .ReadFile (f )
74
+ var b []byte
75
+ var err error
76
+ if strings .HasSuffix (f , ".gz" ) {
77
+ b , err = loadGoldenGz (f )
78
+ } else {
79
+ b , err = ioutil .ReadFile (f )
80
+ }
72
81
if err != nil {
73
82
panic (err )
74
83
}
75
84
return b
76
85
}
77
86
78
87
var (
79
- pg1661 = mustLoadFile ("testdata/pg1661.txt" )
80
- digits = mustLoadFile ("testdata/e.txt" )
81
- twain = mustLoadFile ("testdata/Mark.Twain-Tom.Sawyer.txt" )
82
- random = mustLoadFile ("testdata/random.data" )
88
+ pg1661 = mustLoadFile ("testdata/pg1661.txt.gz " )
89
+ digits = mustLoadFile ("testdata/e.txt.gz " )
90
+ twain = mustLoadFile ("testdata/Mark.Twain-Tom.Sawyer.txt.gz " )
91
+ random = mustLoadFile ("testdata/random.data.gz " )
83
92
pg1661LZ4 = mustLoadFile ("testdata/pg1661.txt.lz4" )
84
93
digitsLZ4 = mustLoadFile ("testdata/e.txt.lz4" )
85
94
twainLZ4 = mustLoadFile ("testdata/Mark.Twain-Tom.Sawyer.txt.lz4" )
86
95
randomLZ4 = mustLoadFile ("testdata/random.data.lz4" )
87
- repeatLz4 = mustLoadFile ("testdata/repeat.txt.lz4" )
88
96
)
89
97
90
98
func benchmarkUncompress (b * testing.B , compressed []byte ) {
@@ -162,18 +170,30 @@ func BenchmarkWriterReset(b *testing.B) {
162
170
}
163
171
}
164
172
165
- func BenchmarkReaderNoReset (b * testing.B ) {
166
- compressed := repeatLz4
167
- b .ReportAllocs ()
168
- b .ResetTimer ()
173
+ // Golden files are compressed with gzip.
174
+ func loadGolden (t * testing.T , fname string ) []byte {
175
+ fname = strings .Replace (fname , ".lz4" , ".gz" , 1 )
176
+ t .Helper ()
177
+ b , err := loadGoldenGz (fname )
178
+ if err != nil {
179
+ t .Fatal (err )
180
+ }
181
+ return b
182
+ }
169
183
170
- for i := 0 ; i < b .N ; i ++ {
171
- r := bytes .NewReader (compressed )
172
- zr := lz4 .NewReader (r )
173
- buf := bytes .NewBuffer (nil )
174
- _ , err := buf .ReadFrom (zr )
175
- if err != nil {
176
- b .Fatal (err )
177
- }
184
+ func loadGoldenGz (fname string ) ([]byte , error ) {
185
+ file , err := os .Open (fname )
186
+ if err != nil {
187
+ return nil , err
188
+ }
189
+ defer file .Close ()
190
+ gzr , err := gzip .NewReader (file )
191
+ if err != nil {
192
+ return nil , err
193
+ }
194
+ buf := bytes .NewBuffer (nil )
195
+ if _ , err := io .Copy (buf , gzr ); err != nil {
196
+ return nil , err
178
197
}
198
+ return buf .Bytes (), nil
179
199
}
0 commit comments