diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index b17e1ecbc048e4e3a0f3d0f647c0a639aeff3674..5ed70f0b7e2f1fce7c4308e9fd02b0db85b79a9e 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -513,6 +513,8 @@ def _build_and_run(check_cancelled, newline_on_success, travis, cache):
       # chance to run.
       massaged_one_run = list(one_run)  # random.shuffle needs an indexable seq.
       random.shuffle(massaged_one_run)  # which it modifies in-place.
+    if infinite_runs:
+      assert len(massaged_one_run) > 0, 'Must have at least one test for a -n inf run'
     runs_sequence = (itertools.repeat(massaged_one_run) if infinite_runs
                      else itertools.repeat(massaged_one_run, runs_per_test))
     all_runs = itertools.chain.from_iterable(runs_sequence)