diff --git a/shiny/iconvg/decode_test.go b/shiny/iconvg/decode_test.go
index f8d34ba..226e71a 100644
--- a/shiny/iconvg/decode_test.go
+++ b/shiny/iconvg/decode_test.go
@@ -48,7 +48,6 @@
 	_ Destination = (*Rasterizer)(nil)
 )
 
-// encodePNG is useful for manually debugging the tests.
 func encodePNG(dstFilename string, src image.Image) error {
 	f, err := os.Create(dstFilename)
 	if err != nil {
@@ -124,6 +123,7 @@
 
 var testdataTestCases = []string{
 	"testdata/action-info",
+	"testdata/blank",
 	"testdata/video-005.primitive",
 }
 
@@ -139,7 +139,14 @@
 			t.Errorf("%s: disassemble: %v", tc, err)
 			continue
 		}
-		want, err := ioutil.ReadFile(filepath.FromSlash(tc) + ".ivg.disassembly")
+		wantFilename := filepath.FromSlash(tc) + ".ivg.disassembly"
+		if overwriteTestdataFiles {
+			if err := ioutil.WriteFile(filepath.FromSlash(wantFilename), got, 0666); err != nil {
+				t.Errorf("%s: WriteFile: %v", tc, err)
+			}
+			continue
+		}
+		want, err := ioutil.ReadFile(wantFilename)
 		if err != nil {
 			t.Errorf("%s: ReadFile: %v", tc, err)
 			continue
@@ -178,6 +185,13 @@
 			continue
 		}
 
+		wantFilename := filepath.FromSlash(tc) + ".png"
+		if overwriteTestdataFiles {
+			if err := encodePNG(filepath.FromSlash(wantFilename), got); err != nil {
+				t.Errorf("%s: encodePNG: %v", tc, err)
+			}
+			continue
+		}
 		want, err := decodePNG(filepath.FromSlash(tc) + ".png")
 		if err != nil {
 			t.Errorf("%s: decodePNG: %v", tc, err)
diff --git a/shiny/iconvg/encode_test.go b/shiny/iconvg/encode_test.go
index 2c26f08..425f747 100644
--- a/shiny/iconvg/encode_test.go
+++ b/shiny/iconvg/encode_test.go
@@ -14,21 +14,34 @@
 	"golang.org/x/image/math/f32"
 )
 
-func TestEncoderZeroValue(t *testing.T) {
-	var e Encoder
+// overwriteTestdataFiles is set to true when adding new testdataTestCases.
+const overwriteTestdataFiles = false
+
+func testEncode(t *testing.T, e *Encoder, wantFilename string) {
 	got, err := e.Bytes()
 	if err != nil {
-		t.Fatalf("Bytes: %v", err)
+		t.Fatalf("encoding: %v", err)
 	}
-	want := []byte{
-		0x89, 0x49, 0x56, 0x47, // IconVG Magic identifier.
-		0x00, // Zero metadata chunks.
+	if overwriteTestdataFiles {
+		if err := ioutil.WriteFile(filepath.FromSlash(wantFilename), got, 0666); err != nil {
+			t.Fatalf("WriteFile: %v", err)
+		}
+		return
+	}
+	want, err := ioutil.ReadFile(filepath.FromSlash(wantFilename))
+	if err != nil {
+		t.Fatalf("ReadFile: %v", err)
 	}
 	if !bytes.Equal(got, want) {
-		t.Errorf("\ngot  %d bytes:\n% x\nwant %d bytes:\n% x", len(got), got, len(want), want)
+		t.Fatalf("\ngot  %d bytes:\n% x\nwant %d bytes:\n% x", len(got), got, len(want), want)
 	}
 }
 
+func TestEncodeBlank(t *testing.T) {
+	var e Encoder
+	testEncode(t, &e, "testdata/blank.ivg")
+}
+
 func TestEncodeActionInfo(t *testing.T) {
 	var e Encoder
 	e.Reset(Metadata{
@@ -56,17 +69,7 @@
 	e.RelVLineTo(4)
 	e.ClosePathEndPath()
 
-	got, err := e.Bytes()
-	if err != nil {
-		t.Fatal(err)
-	}
-	want, err := ioutil.ReadFile(filepath.FromSlash("testdata/action-info.ivg"))
-	if err != nil {
-		t.Fatal(err)
-	}
-	if !bytes.Equal(got, want) {
-		t.Errorf("\ngot  %d bytes:\n% x\nwant %d bytes:\n% x", len(got), got, len(want), want)
-	}
+	testEncode(t, &e, "testdata/action-info.ivg")
 }
 
 var video005PrimitiveSVGData = []struct {
@@ -145,15 +148,5 @@
 		e.ClosePathEndPath()
 	}
 
-	got, err := e.Bytes()
-	if err != nil {
-		t.Fatal(err)
-	}
-	want, err := ioutil.ReadFile(filepath.FromSlash("testdata/video-005.primitive.ivg"))
-	if err != nil {
-		t.Fatal(err)
-	}
-	if !bytes.Equal(got, want) {
-		t.Errorf("\ngot  %d bytes:\n% x\nwant %d bytes:\n% x", len(got), got, len(want), want)
-	}
+	testEncode(t, &e, "testdata/video-005.primitive.ivg")
 }
diff --git a/shiny/iconvg/testdata/README b/shiny/iconvg/testdata/README
index ec9e2e1..bf297de 100644
--- a/shiny/iconvg/testdata/README
+++ b/shiny/iconvg/testdata/README
@@ -10,6 +10,14 @@
 
 
 
+blank.ivg is a blank, square graphic.
+
+blank.ivg.disassembly is a disassembly of that IconVG file.
+
+blank.png is a rendering of that IconVG file.
+
+
+
 video-005.jpeg comes from an old version of the Go repository. See
 https://codereview.appspot.com/5758047/
 
diff --git a/shiny/iconvg/testdata/blank.ivg b/shiny/iconvg/testdata/blank.ivg
new file mode 100644
index 0000000..e5be490
--- /dev/null
+++ b/shiny/iconvg/testdata/blank.ivg
Binary files differ
diff --git a/shiny/iconvg/testdata/blank.ivg.disassembly b/shiny/iconvg/testdata/blank.ivg.disassembly
new file mode 100644
index 0000000..10d2645
--- /dev/null
+++ b/shiny/iconvg/testdata/blank.ivg.disassembly
@@ -0,0 +1,2 @@
+89 49 56 47   IconVG Magic identifier
+00            Number of metadata chunks: 0
diff --git a/shiny/iconvg/testdata/blank.png b/shiny/iconvg/testdata/blank.png
new file mode 100644
index 0000000..5bae722
--- /dev/null
+++ b/shiny/iconvg/testdata/blank.png
Binary files differ
