Add a TestSameEncodingAsCppShortCopies test.
diff --git a/snappy_test.go b/snappy_test.go
index 31ad750..714e2a2 100644
--- a/snappy_test.go
+++ b/snappy_test.go
@@ -492,14 +492,45 @@
 	}
 }
 
-func TestSameEncodingAsCpp(t *testing.T) {
+const snappytoolCmdName = "cmd/snappytool/snappytool"
+
+func skipTestSameEncodingAsCpp() (msg string) {
 	if !goEncoderShouldMatchCppEncoder {
-		t.Skipf("skipping testing that the encoding is byte-for-byte identical to C++: GOARCH=%s", runtime.GOARCH)
+		return fmt.Sprintf("skipping testing that the encoding is byte-for-byte identical to C++: GOARCH=%s", runtime.GOARCH)
 	}
-	const cmdName = "cmd/snappytool/snappytool"
-	_, err := os.Stat(cmdName)
+	if _, err := os.Stat(snappytoolCmdName); err != nil {
+		return fmt.Sprintf("could not find snappytool: %v", err)
+	}
+	return ""
+}
+
+func runTestSameEncodingAsCpp(src []byte) error {
+	got := Encode(nil, src)
+
+	cmd := exec.Command(snappytoolCmdName, "-e")
+	cmd.Stdin = bytes.NewReader(src)
+	want, err := cmd.Output()
 	if err != nil {
-		t.Skipf("could not find snappytool: %v", err)
+		return fmt.Errorf("could not run snappytool: %v", err)
+	}
+	return cmp(got, want)
+}
+
+func TestSameEncodingAsCppShortCopies(t *testing.T) {
+	if msg := skipTestSameEncodingAsCpp(); msg != "" {
+		t.Skip(msg)
+	}
+	src := bytes.Repeat([]byte{'a'}, 20)
+	for i := 0; i <= len(src); i++ {
+		if err := runTestSameEncodingAsCpp(src[:i]); err != nil {
+			t.Errorf("i=%d: %v", i, err)
+		}
+	}
+}
+
+func TestSameEncodingAsCppLongFiles(t *testing.T) {
+	if msg := skipTestSameEncodingAsCpp(); msg != "" {
+		t.Skip(msg)
 	}
 	for i, tf := range testFiles {
 		if err := downloadBenchmarkFiles(t, tf.filename); err != nil {
@@ -509,17 +540,7 @@
 		if n := tf.sizeLimit; 0 < n && n < len(data) {
 			data = data[:n]
 		}
-
-		got := Encode(nil, data)
-
-		cmd := exec.Command(cmdName, "-e")
-		cmd.Stdin = bytes.NewReader(data)
-		want, err := cmd.Output()
-		if err != nil {
-			t.Fatalf("could not run snappytool: %v", err)
-		}
-
-		if err := cmp(got, want); err != nil {
+		if err := runTestSameEncodingAsCpp(data); err != nil {
 			t.Errorf("i=%d: %v", i, err)
 		}
 	}