diff --git a/scm-perf/poulpe-scheduler-bin/auto-cases b/scm-perf/poulpe-scheduler-bin/auto-cases
index 9e0d8921da9820975d7311d56569b891ede62fa0_c2NtLXBlcmYvcG91bHBlLXNjaGVkdWxlci1iaW4vYXV0by1jYXNlcw==..619b44b283eb7ffe3f0c3eab9b734ac0c2d3cbbe_c2NtLXBlcmYvcG91bHBlLXNjaGVkdWxlci1iaW4vYXV0by1jYXNlcw== 100755
--- a/scm-perf/poulpe-scheduler-bin/auto-cases
+++ b/scm-perf/poulpe-scheduler-bin/auto-cases
@@ -151,13 +151,12 @@
     for i in range(size):
         h = random.choice(hashes)
         variants = list_mercurial_variants(base_dir, h)
-        compatible_datas = [d for d in datas if compatible_with(base_dir, d, h)]
-        yield Case(
-            h,
-            random.choice(variants),
-            random.choice(compatible_datas),
-            random.choice(benchmarks),
-        )
+        for v in variants:
+            for d in datas:
+                if not compatible_with(base_dir, d, h):
+                    continue
+                for b in benchmarks:
+                    yield Case(h, v, d, b)
 
 
 if __name__ == "__main__":