Skip to content

Commit

Permalink
testdata: gzip compress raw files
Browse files Browse the repository at this point in the history
This reduces the package size substantially.
Fixes #202.
  • Loading branch information
pierrec committed Dec 12, 2024
1 parent 2bb851f commit 0f7173a
Show file tree
Hide file tree
Showing 36 changed files with 70 additions and 114,727 deletions.
56 changes: 38 additions & 18 deletions bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ package lz4_test

import (
"bytes"
"compress/gzip"
"io"
"io/ioutil"
"os"
"strings"
"testing"

"github.com/pierrec/lz4/v4"
Expand Down Expand Up @@ -68,23 +71,28 @@ func BenchmarkUncompress(b *testing.B) {
}

func mustLoadFile(f string) []byte {
b, err := ioutil.ReadFile(f)
var b []byte
var err error
if strings.HasSuffix(f, ".gz") {
b, err = loadGoldenGz(f)
} else {
b, err = ioutil.ReadFile(f)
}
if err != nil {
panic(err)
}
return b
}

var (
pg1661 = mustLoadFile("testdata/pg1661.txt")
digits = mustLoadFile("testdata/e.txt")
twain = mustLoadFile("testdata/Mark.Twain-Tom.Sawyer.txt")
random = mustLoadFile("testdata/random.data")
pg1661 = mustLoadFile("testdata/pg1661.txt.gz")
digits = mustLoadFile("testdata/e.txt.gz")
twain = mustLoadFile("testdata/Mark.Twain-Tom.Sawyer.txt.gz")
random = mustLoadFile("testdata/random.data.gz")
pg1661LZ4 = mustLoadFile("testdata/pg1661.txt.lz4")
digitsLZ4 = mustLoadFile("testdata/e.txt.lz4")
twainLZ4 = mustLoadFile("testdata/Mark.Twain-Tom.Sawyer.txt.lz4")
randomLZ4 = mustLoadFile("testdata/random.data.lz4")
repeatLz4 = mustLoadFile("testdata/repeat.txt.lz4")
)

func benchmarkUncompress(b *testing.B, compressed []byte) {
Expand Down Expand Up @@ -162,18 +170,30 @@ func BenchmarkWriterReset(b *testing.B) {
}
}

func BenchmarkReaderNoReset(b *testing.B) {
compressed := repeatLz4
b.ReportAllocs()
b.ResetTimer()
// Golden files are compressed with gzip.
func loadGolden(t *testing.T, fname string) []byte {
fname = strings.Replace(fname, ".lz4", ".gz", 1)
t.Helper()
b, err := loadGoldenGz(fname)
if err != nil {
t.Fatal(err)
}
return b
}

for i := 0; i < b.N; i++ {
r := bytes.NewReader(compressed)
zr := lz4.NewReader(r)
buf := bytes.NewBuffer(nil)
_, err := buf.ReadFrom(zr)
if err != nil {
b.Fatal(err)
}
func loadGoldenGz(fname string) ([]byte, error) {
file, err := os.Open(fname)
if err != nil {
return nil, err
}
defer file.Close()
gzr, err := gzip.NewReader(file)
if err != nil {
return nil, err
}
buf := bytes.NewBuffer(nil)
if _, err := io.Copy(buf, gzr); err != nil {
return nil, err
}
return buf.Bytes(), nil
}
18 changes: 9 additions & 9 deletions compressing_reader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ import (

func TestCompressingReader(t *testing.T) {
goldenFiles := []string{
"testdata/e.txt",
"testdata/gettysburg.txt",
"testdata/Mark.Twain-Tom.Sawyer.txt",
"testdata/Mark.Twain-Tom.Sawyer_long.txt",
"testdata/pg1661.txt",
"testdata/pi.txt",
"testdata/random.data",
"testdata/repeat.txt",
"testdata/issue102.data",
"testdata/e.txt.gz",
"testdata/gettysburg.txt.gz",
"testdata/Mark.Twain-Tom.Sawyer.txt.gz",
"testdata/Mark.Twain-Tom.Sawyer_long.txt.gz",
"testdata/pg1661.txt.gz",
"testdata/pi.txt.gz",
"testdata/random.data.gz",
"testdata/repeat.txt.gz",
"testdata/issue102.data.gz",
}

for _, fname := range goldenFiles {
Expand Down
13 changes: 3 additions & 10 deletions reader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,7 @@ func TestReader(t *testing.T) {
}
defer f.Close()

rawfile := strings.TrimSuffix(fname, ".lz4")
_raw, err := ioutil.ReadFile(rawfile)
if err != nil {
t.Fatal(err)
}
_raw := loadGolden(t, fname)
var raw []byte
if isText && runtime.GOOS == "windows" {
raw = []byte(strings.ReplaceAll(string(_raw), "\r\n", "\n"))
Expand Down Expand Up @@ -206,11 +202,8 @@ func TestReaderLegacy(t *testing.T) {
t.Parallel()

var out bytes.Buffer
rawfile := strings.TrimSuffix(fname, ".lz4")
raw, err := ioutil.ReadFile(rawfile)
if err != nil {
t.Fatal(err)
}
rawfile := strings.Replace(fname, ".lz4", ".gz", 1)
raw := loadGolden(t, rawfile)

f, err := os.Open(fname)
if err != nil {
Expand Down
Loading

0 comments on commit 0f7173a

Please sign in to comment.