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
diff --git a/snappy/snappy_test.go b/snappy/snappy_test.go
index 0d62ba7..0623385 100644
--- a/snappy/snappy_test.go
+++ b/snappy/snappy_test.go
@@ -58,11 +58,11 @@
 }
 
 func TestSmallRand(t *testing.T) {
-	rand.Seed(27354294)
+	rng := rand.New(rand.NewSource(27354294))
 	for n := 1; n < 20000; n += 23 {
 		b := make([]byte, n)
 		for i := range b {
-			b[i] = uint8(rand.Uint32())
+			b[i] = uint8(rng.Uint32())
 		}
 		if err := roundtrip(b, nil, nil); err != nil {
 			t.Fatal(err)
@@ -95,25 +95,33 @@
 }
 
 func TestFramingFormat(t *testing.T) {
-	for _, tf := range testFiles {
-		if err := downloadTestdata(tf.filename); err != nil {
-			t.Fatalf("failed to download testdata: %s", err)
+	// src is comprised of alternating 1e5-sized sequences of random
+	// (incompressible) bytes and repeated (compressible) bytes. 1e5 was chosen
+	// because it is larger than maxUncompressedChunkLen (64k).
+	src := make([]byte, 1e6)
+	rng := rand.New(rand.NewSource(1))
+	for i := 0; i < 10; i++ {
+		if i%2 == 0 {
+			for j := 0; j < 1e5; j++ {
+				src[1e5*i+j] = uint8(rng.Intn(256))
+			}
+		} else {
+			for j := 0; j < 1e5; j++ {
+				src[1e5*i+j] = uint8(i)
+			}
 		}
-		src := readFile(t, filepath.Join(*testdata, tf.filename))
-		buf := new(bytes.Buffer)
-		if _, err := NewWriter(buf).Write(src); err != nil {
-			t.Errorf("%s: encoding: %v", tf.filename, err)
-			continue
-		}
-		dst, err := ioutil.ReadAll(NewReader(buf))
-		if err != nil {
-			t.Errorf("%s: decoding: %v", tf.filename, err)
-			continue
-		}
-		if err := cmp(dst, src); err != nil {
-			t.Errorf("%s: %v", tf.filename, err)
-			continue
-		}
+	}
+
+	buf := new(bytes.Buffer)
+	if _, err := NewWriter(buf).Write(src); err != nil {
+		t.Fatalf("Write: encoding: %v", err)
+	}
+	dst, err := ioutil.ReadAll(NewReader(buf))
+	if err != nil {
+		t.Fatalf("ReadAll: decoding: %v", err)
+	}
+	if err := cmp(dst, src); err != nil {
+		t.Fatal(err)
 	}
 }