diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index f59bff2a8890303fe6cc37a335d8691211eb49c4..ab6728b4eed57e4cd2dc075d7677adbeab906df2 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -180,14 +180,17 @@ forever = args.forever
 class TestCache(object):
   """Cache for running tests."""
 
-  def __init__(self):
+  def __init__(self, use_cache_results):
     self._last_successful_run = {}
+    self._use_cache_results = use_cache_results
 
   def should_run(self, cmdline, bin_hash):
     if cmdline not in self._last_successful_run:
       return True
     if self._last_successful_run[cmdline] != bin_hash:
       return True
+    if not self._use_cache_results:
+      return True
     return False
 
   def finished(self, cmdline, bin_hash):
@@ -228,7 +231,7 @@ def _build_and_run(check_cancelled, newline_on_success, cache):
   return 0
 
 
-test_cache = TestCache()
+test_cache = TestCache(runs_per_test == 1)
 test_cache.maybe_load()
 
 if forever: