diff --git a/script/bench-go-deflate/main.go b/script/bench-go-deflate/main.go
index 5d69180..74e8f99 100644
--- a/script/bench-go-deflate/main.go
+++ b/script/bench-go-deflate/main.go
@@ -48,15 +48,15 @@
 
 // The various magic constants below are copied from test/c/std/deflate.c
 var testCases = []testCase{{
-	benchname:     "go_deflate_decode_1k",
+	benchname:     "go_deflate_decode_1k_full_init",
 	src:           mustLoad("test/data/romeo.txt.gz")[20:550],
 	itersUnscaled: 2000,
 }, {
-	benchname:     "go_deflate_decode_10k",
+	benchname:     "go_deflate_decode_10k_full_init",
 	src:           mustLoad("test/data/midsummer.txt.gz")[24:5166],
 	itersUnscaled: 300,
 }, {
-	benchname:     "go_deflate_decode_100k",
+	benchname:     "go_deflate_decode_100k_just_one_read",
 	src:           mustLoad("test/data/pi.txt.gz")[17:48335],
 	itersUnscaled: 30,
 }}
diff --git a/script/bench-go-gif/main.go b/script/bench-go-gif/main.go
index e9228af..86c6c07 100644
--- a/script/bench-go-gif/main.go
+++ b/script/bench-go-gif/main.go
@@ -53,7 +53,7 @@
 	src:           mustLoad("test/data/pjw-thumbnail.gif"),
 	itersUnscaled: 2000,
 }, {
-	benchname:     "go_gif_decode_1k_color",
+	benchname:     "go_gif_decode_1k_color_full_init",
 	src:           mustLoad("test/data/hippopotamus.regular.gif"),
 	itersUnscaled: 1000,
 }, {
@@ -77,7 +77,7 @@
 	src:           mustLoad("test/data/hibiscus.regular.gif"),
 	itersUnscaled: 10,
 }, {
-	benchname:     "go_gif_decode_1000k",
+	benchname:     "go_gif_decode_1000k_full_init",
 	src:           mustLoad("test/data/harvesters.gif"),
 	itersUnscaled: 1,
 }, {
diff --git a/script/bench-rust-deflate/src/main.rs b/script/bench-rust-deflate/src/main.rs
index 4459efc..f83a02d 100644
--- a/script/bench-rust-deflate/src/main.rs
+++ b/script/bench-rust-deflate/src/main.rs
@@ -54,7 +54,7 @@
     // The various magic constants below are copied from test/c/std/deflate.c
     for i in 0..(1 + REPS) {
         bench(
-            "1k",
+            "1k_full_init",
             &mut dst[..],
             &include_bytes!("../../../test/data/romeo.txt.gz")[20..550],
             i == 0, // warm_up
@@ -63,7 +63,7 @@
         );
 
         bench(
-            "10k",
+            "10k_full_init",
             &mut dst[..],
             &include_bytes!("../../../test/data/midsummer.txt.gz")[24..5166],
             i == 0, // warm_up
@@ -72,7 +72,7 @@
         );
 
         bench(
-            "100k",
+            "100k_just_one_read",
             &mut dst[..],
             &include_bytes!("../../../test/data/pi.txt.gz")[17..48335],
             i == 0, // warm_up
diff --git a/script/bench-rust-gif/src/main.rs b/script/bench-rust-gif/src/main.rs
index caa5d54..e7ca737 100644
--- a/script/bench-rust-gif/src/main.rs
+++ b/script/bench-rust-gif/src/main.rs
@@ -68,7 +68,7 @@
         );
 
         bench(
-            "1k_color",
+            "1k_color_full_init",
             &mut dst[..],
             include_bytes!("../../../test/data/hippopotamus.regular.gif"),
             i == 0, // warm_up
@@ -122,7 +122,7 @@
         );
 
         bench(
-            "1000k",
+            "1000k_full_init",
             &mut dst[..],
             include_bytes!("../../../test/data/harvesters.gif"),
             i == 0, // warm_up
diff --git a/test/c/std/deflate.c b/test/c/std/deflate.c
index 022534c..4d80263 100644
--- a/test/c/std/deflate.c
+++ b/test/c/std/deflate.c
@@ -861,14 +861,14 @@
 #ifdef WUFFS_MIMIC
 
 const char*  //
-bench_mimic_deflate_decode_1k() {
+bench_mimic_deflate_decode_1k_full_init() {
   CHECK_FOCUS(__func__);
   return do_bench_io_buffers(mimic_deflate_decode, 0, tcounter_dst,
                              &g_deflate_romeo_gt, UINT64_MAX, UINT64_MAX, 2000);
 }
 
 const char*  //
-bench_mimic_deflate_decode_10k() {
+bench_mimic_deflate_decode_10k_full_init() {
   CHECK_FOCUS(__func__);
   return do_bench_io_buffers(mimic_deflate_decode, 0, tcounter_dst,
                              &g_deflate_midsummer_gt, UINT64_MAX, UINT64_MAX,
@@ -944,8 +944,8 @@
 
 #ifdef WUFFS_MIMIC
 
-    bench_mimic_deflate_decode_1k,
-    bench_mimic_deflate_decode_10k,
+    bench_mimic_deflate_decode_1k_full_init,
+    bench_mimic_deflate_decode_10k_full_init,
     bench_mimic_deflate_decode_100k_just_one_read,
     bench_mimic_deflate_decode_100k_many_big_reads,
 
diff --git a/test/c/std/gif.c b/test/c/std/gif.c
index f20f596..4446747 100644
--- a/test/c/std/gif.c
+++ b/test/c/std/gif.c
@@ -2232,7 +2232,7 @@
 }
 
 const char*  //
-bench_mimic_gif_decode_1k_color() {
+bench_mimic_gif_decode_1k_color_full_init() {
   CHECK_FOCUS(__func__);
   return do_bench_image_decode(
       mimic_gif_decode, 0,
@@ -2282,7 +2282,7 @@
 }
 
 const char*  //
-bench_mimic_gif_decode_1000k() {
+bench_mimic_gif_decode_1000k_full_init() {
   CHECK_FOCUS(__func__);
   return do_bench_image_decode(
       mimic_gif_decode, 0,
@@ -2395,12 +2395,12 @@
 #ifdef WUFFS_MIMIC
 
     bench_mimic_gif_decode_1k_bw,
-    bench_mimic_gif_decode_1k_color,
+    bench_mimic_gif_decode_1k_color_full_init,
     bench_mimic_gif_decode_10k_indexed,
     bench_mimic_gif_decode_20k,
     bench_mimic_gif_decode_100k_artificial,
     bench_mimic_gif_decode_100k_realistic,
-    bench_mimic_gif_decode_1000k,
+    bench_mimic_gif_decode_1000k_full_init,
     bench_mimic_gif_decode_anim_screencap,
 
 #endif  // WUFFS_MIMIC
