Browse Source

Version 4.0.0 ready.

Pierre.Curto 5 years ago
parent
commit
5fad50ed9c
4 changed files with 39 additions and 108 deletions
  1. 1 13
      go.mod
  2. 0 63
      go.sum
  3. 20 20
      internal/lz4stream/frame_test.go
  4. 18 12
      internal/xxh32/xxh32zero_test.go

+ 1 - 13
go.mod

@@ -1,15 +1,3 @@
-module github.com/pierrec/lz4
+module github.com/pierrec/lz4/v4
 
 go 1.14
-
-require (
-	code.cloudfoundry.org/bytefmt v0.0.0-20200131002437-cf55d5288a48
-	github.com/frankban/quicktest v1.9.0
-	github.com/onsi/ginkgo v1.12.0 // indirect
-	github.com/onsi/gomega v1.9.0 // indirect
-	github.com/pierrec/cmdflag v0.0.2
-	github.com/schollz/progressbar v1.0.0
-	github.com/schollz/progressbar/v3 v3.1.1
-	golang.org/x/net v0.0.0-20200226121028-0de0cce0169b // indirect
-	golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
-)

+ 0 - 63
go.sum

@@ -1,63 +0,0 @@
-code.cloudfoundry.org/bytefmt v0.0.0-20200131002437-cf55d5288a48 h1:/EMHruHCFXR9xClkGV/t0rmHrdhX4+trQUcBqjwc9xE=
-code.cloudfoundry.org/bytefmt v0.0.0-20200131002437-cf55d5288a48/go.mod h1:wN/zk7mhREp/oviagqUXY3EwuHhWyOvAdsn5Y4CzOrc=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/frankban/quicktest v1.9.0 h1:jfEA+Psfr/pHsRJYPpHiNu7PGJnGctNxvTaM3K1EyXk=
-github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y=
-github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
-github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ=
-github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU=
-github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
-github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.9.0 h1:R1uwffexN6Pr340GtYRIdZmAiN4J+iw6WG4wog1DUXg=
-github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
-github.com/pierrec/cmdflag v0.0.2 h1:ybjGJnPr/aURn2IKWjO49znx9N0DL6YfGsIxN0PYuVY=
-github.com/pierrec/cmdflag v0.0.2/go.mod h1:a3zKGZ3cdQUfxjd0RGMLZr8xI3nvpJOB+m6o/1X5BmU=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/schollz/progressbar v1.0.0 h1:gbyFReLHDkZo8mxy/dLWMr+Mpb1MokGJ1FqCiqacjZM=
-github.com/schollz/progressbar v1.0.0/go.mod h1:/l9I7PC3L3erOuz54ghIRKUEFcosiWfLvJv+Eq26UMs=
-github.com/schollz/progressbar/v3 v3.1.1 h1:IsKbXcalNftS2i4KUTkf/LTcMIrm1RUoefVaJQaizYw=
-github.com/schollz/progressbar/v3 v3.1.1/go.mod h1:d+PD64vPuv+GL2EhUpvV579FR91WWhRHEnImqGsIBU4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e h1:N7DeIrjYszNmSW409R3frPPwglRwMkXSBzwVbkOjLLA=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

+ 20 - 20
internal/lz4stream/frame_test.go

@@ -6,7 +6,7 @@ import (
 	"strings"
 	"testing"
 
-	"github.com/pierrec/lz4"
+	"github.com/pierrec/lz4/internal/lz4block"
 )
 
 func TestFrameDescriptor(t *testing.T) {
@@ -14,12 +14,12 @@ func TestFrameDescriptor(t *testing.T) {
 		flags             string
 		bsum, csize, csum bool
 		size              uint64
-		bsize             lz4.BlockSize
+		bsize             uint32
 	}{
-		{"\x64\x40\xa7", false, false, true, 0, lz4.Block64Kb},
-		{"\x64\x50\x08", false, false, true, 0, lz4.Block256Kb},
-		{"\x64\x60\x85", false, false, true, 0, lz4.Block1Mb},
-		{"\x64\x70\xb9", false, false, true, 0, lz4.Block4Mb},
+		{"\x64\x40\xa7", false, false, true, 0, lz4block.Block64Kb},
+		{"\x64\x50\x08", false, false, true, 0, lz4block.Block256Kb},
+		{"\x64\x60\x85", false, false, true, 0, lz4block.Block1Mb},
+		{"\x64\x70\xb9", false, false, true, 0, lz4block.Block4Mb},
 	} {
 		s := tc.flags
 		label := fmt.Sprintf("%02x %02x %02x", s[0], s[1], s[2])
@@ -43,18 +43,18 @@ func TestFrameDescriptor(t *testing.T) {
 			if got, want := fd.ContentSize, tc.size; got != want {
 				t.Fatalf("got %v; want %v\n", got, want)
 			}
-			if got, want := fd.Flags.BlockSizeIndex(), tc.bsize.index(); got != want {
+			if got, want := fd.Flags.BlockSizeIndex(), lz4block.Index(tc.bsize); got != want {
 				t.Fatalf("got %v; want %v\n", got, want)
 			}
 
 			buf := new(bytes.Buffer)
-			w := lz4.NewWriter(buf)
 			fd.initW()
 			fd.Checksum = 0
-			if err := fd.Write(f, w); err != nil {
+			if err := fd.Write(f, buf); err != nil {
 				t.Fatal(err)
 			}
-			if got, want := buf.String(), tc.flags; got != want {
+			// Skip the magic number set in the first 4 bytes.
+			if got, want := buf.String()[4:], tc.flags; got != want {
 				t.Fatalf("got %q; want %q\n", got, want)
 			}
 		})
@@ -71,15 +71,15 @@ func TestFrameDataBlock(t *testing.T) {
 	}
 	for _, tc := range []struct {
 		data string
-		size lz4.BlockSize
+		size uint32
 	}{
-		{"", lz4.Block64Kb},
-		{sample, lz4.Block64Kb},
-		{strings.Repeat(sample, 10), lz4.Block64Kb},
-		{strings.Repeat(sample, 5000), lz4.Block256Kb},
-		{strings.Repeat(sample, 5000), lz4.Block1Mb},
-		{strings.Repeat(sample, 23000), lz4.Block1Mb},
-		{strings.Repeat(sample, 93000), lz4.Block4Mb},
+		{"", lz4block.Block64Kb},
+		{sample, lz4block.Block64Kb},
+		{strings.Repeat(sample, 10), lz4block.Block64Kb},
+		{strings.Repeat(sample, 5000), lz4block.Block256Kb},
+		{strings.Repeat(sample, 5000), lz4block.Block1Mb},
+		{strings.Repeat(sample, 23000), lz4block.Block1Mb},
+		{strings.Repeat(sample, 93000), lz4block.Block4Mb},
 	} {
 		label := fmt.Sprintf("%s (%d)", tc.data[:min(len(tc.data), 10)], len(tc.data))
 		t.Run(label, func(t *testing.T) {
@@ -88,8 +88,8 @@ func TestFrameDataBlock(t *testing.T) {
 			zbuf := new(bytes.Buffer)
 			f := NewFrame()
 
-			block := newFrameDataBlock(size.index())
-			block.Compress(f, []byte(data), nil, lz4.Fast)
+			block := NewFrameDataBlock(lz4block.Index(size))
+			block.Compress(f, []byte(data), lz4block.Fast)
 			if err := block.Write(f, zbuf); err != nil {
 				t.Fatal(err)
 			}

+ 18 - 12
internal/xxh32/xxh32zero_test.go

@@ -6,7 +6,6 @@ import (
 	"hash/fnv"
 	"testing"
 
-	qt "github.com/frankban/quicktest"
 	"github.com/pierrec/lz4/internal/xxh32"
 )
 
@@ -47,19 +46,21 @@ func TestZeroSize(t *testing.T) {
 }
 
 func TestZeroData(t *testing.T) {
-	c := qt.New(t)
 	for _, td := range testdata {
 		var xxh xxh32.XXHZero
 		data := []byte(td.data)
 		_, _ = xxh.Write(data)
 
-		c.Assert(xxh.Sum32(), qt.Equals, td.sum)
-		c.Assert(xxh32.ChecksumZero(data), qt.Equals, td.sum)
+		if got, want := xxh.Sum32(), td.sum; got != want {
+			t.Fatalf("got %d; want %d", got, want)
+		}
+		if got, want := xxh32.ChecksumZero(data), td.sum; got != want {
+			t.Fatalf("got %d; want %d", got, want)
+		}
 	}
 }
 
 func TestZeroSplitData(t *testing.T) {
-	c := qt.New(t)
 	for _, td := range testdata {
 		var xxh xxh32.XXHZero
 		data := []byte(td.data)
@@ -67,38 +68,43 @@ func TestZeroSplitData(t *testing.T) {
 		_, _ = xxh.Write(data[0:l])
 		_, _ = xxh.Write(data[l:])
 
-		c.Assert(xxh.Sum32(), qt.Equals, td.sum)
+		if got, want := xxh.Sum32(), td.sum; got != want {
+			t.Fatalf("got %d; want %d", got, want)
+		}
 	}
 }
 
 func TestZeroSum(t *testing.T) {
-	c := qt.New(t)
 	for _, td := range testdata {
 		var xxh xxh32.XXHZero
 		data := []byte(td.data)
 		_, _ = xxh.Write(data)
 		b := xxh.Sum(data)
 		h := binary.LittleEndian.Uint32(b[len(data):])
-		c.Assert(h, qt.Equals, td.sum)
+		if got, want := h, td.sum; got != want {
+			t.Fatalf("got %d; want %d", got, want)
+		}
 	}
 }
 
 func TestZeroChecksum(t *testing.T) {
-	c := qt.New(t)
 	for _, td := range testdata {
 		data := []byte(td.data)
 		h := xxh32.ChecksumZero(data)
-		c.Assert(h, qt.Equals, td.sum)
+		if got, want := h, td.sum; got != want {
+			t.Fatalf("got %d; want %d", got, want)
+		}
 	}
 }
 
 func TestZeroReset(t *testing.T) {
-	c := qt.New(t)
 	var xxh xxh32.XXHZero
 	for _, td := range testdata {
 		_, _ = xxh.Write([]byte(td.data))
 		h := xxh.Sum32()
-		c.Assert(h, qt.Equals, td.sum)
+		if got, want := h, td.sum; got != want {
+			t.Fatalf("got %d; want %d", got, want)
+		}
 		xxh.Reset()
 	}
 }