mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-10 15:20:56 +00:00
64 lines
981 B
Go
64 lines
981 B
Go
|
package lz4
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"io/ioutil"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
var testfile, _ = ioutil.ReadFile("testdata/pg1661.txt")
|
||
|
|
||
|
func roundtrip(t *testing.T, input []byte) {
|
||
|
|
||
|
dst, err := Encode(nil, input)
|
||
|
if err != nil {
|
||
|
t.Errorf("got error during compression: %s", err)
|
||
|
}
|
||
|
|
||
|
output, err := Decode(nil, dst)
|
||
|
|
||
|
if err != nil {
|
||
|
t.Errorf("got error during decompress: %s", err)
|
||
|
}
|
||
|
|
||
|
if !bytes.Equal(output, input) {
|
||
|
t.Errorf("roundtrip failed")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestEmpty(t *testing.T) {
|
||
|
roundtrip(t, nil)
|
||
|
}
|
||
|
|
||
|
func TestLengths(t *testing.T) {
|
||
|
|
||
|
for i := 0; i < 1024; i++ {
|
||
|
roundtrip(t, testfile[:i])
|
||
|
}
|
||
|
|
||
|
for i := 1024; i < 4096; i += 23 {
|
||
|
roundtrip(t, testfile[:i])
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestWords(t *testing.T) {
|
||
|
roundtrip(t, testfile)
|
||
|
}
|
||
|
|
||
|
func BenchmarkLZ4Encode(b *testing.B) {
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
Encode(nil, testfile)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkLZ4Decode(b *testing.B) {
|
||
|
|
||
|
var compressed, _ = Encode(nil, testfile)
|
||
|
|
||
|
b.ResetTimer()
|
||
|
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
Decode(nil, compressed)
|
||
|
}
|
||
|
}
|