Skip to content
This repository was archived by the owner on Mar 7, 2025. It is now read-only.

Commit 156a073

Browse files
committed
snappy: make TestFramingFormat not depend on downloading (separately
licensed) testdata files. Such files are now only used for benchmarks (they are the same files used by the C++ snappy code). LGTM=dsymonds R=dsymonds CC=golang-codereviews https://codereview.appspot.com/201220043
1 parent ec2b2f9 commit 156a073

File tree

1 file changed

+28
-20
lines changed

1 file changed

+28
-20
lines changed

snappy/snappy_test.go

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ func TestSmallCopy(t *testing.T) {
5858
}
5959

6060
func TestSmallRand(t *testing.T) {
61-
rand.Seed(27354294)
61+
rng := rand.New(rand.NewSource(27354294))
6262
for n := 1; n < 20000; n += 23 {
6363
b := make([]byte, n)
6464
for i := range b {
65-
b[i] = uint8(rand.Uint32())
65+
b[i] = uint8(rng.Uint32())
6666
}
6767
if err := roundtrip(b, nil, nil); err != nil {
6868
t.Fatal(err)
@@ -95,26 +95,34 @@ func cmp(a, b []byte) error {
9595
}
9696

9797
func TestFramingFormat(t *testing.T) {
98-
for _, tf := range testFiles {
99-
if err := downloadTestdata(tf.filename); err != nil {
100-
t.Fatalf("failed to download testdata: %s", err)
101-
}
102-
src := readFile(t, filepath.Join(*testdata, tf.filename))
103-
buf := new(bytes.Buffer)
104-
if _, err := NewWriter(buf).Write(src); err != nil {
105-
t.Errorf("%s: encoding: %v", tf.filename, err)
106-
continue
107-
}
108-
dst, err := ioutil.ReadAll(NewReader(buf))
109-
if err != nil {
110-
t.Errorf("%s: decoding: %v", tf.filename, err)
111-
continue
112-
}
113-
if err := cmp(dst, src); err != nil {
114-
t.Errorf("%s: %v", tf.filename, err)
115-
continue
98+
// src is comprised of alternating 1e5-sized sequences of random
99+
// (incompressible) bytes and repeated (compressible) bytes. 1e5 was chosen
100+
// because it is larger than maxUncompressedChunkLen (64k).
101+
src := make([]byte, 1e6)
102+
rng := rand.New(rand.NewSource(1))
103+
for i := 0; i < 10; i++ {
104+
if i%2 == 0 {
105+
for j := 0; j < 1e5; j++ {
106+
src[1e5*i+j] = uint8(rng.Intn(256))
107+
}
108+
} else {
109+
for j := 0; j < 1e5; j++ {
110+
src[1e5*i+j] = uint8(i)
111+
}
116112
}
117113
}
114+
115+
buf := new(bytes.Buffer)
116+
if _, err := NewWriter(buf).Write(src); err != nil {
117+
t.Fatalf("Write: encoding: %v", err)
118+
}
119+
dst, err := ioutil.ReadAll(NewReader(buf))
120+
if err != nil {
121+
t.Fatalf("ReadAll: decoding: %v", err)
122+
}
123+
if err := cmp(dst, src); err != nil {
124+
t.Fatal(err)
125+
}
118126
}
119127

120128
func TestReaderReset(t *testing.T) {

0 commit comments

Comments
 (0)