Change TestCache to parameterize whether to skip running tests.

This allows caching results with --runs_per_test.
pull/480/head
David Klempner 10 years ago
parent 5e35b14094
commit 2573958e84
  1. 15
      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,11 +231,8 @@ def _build_and_run(check_cancelled, newline_on_success, cache):
return 0
if runs_per_test == 1:
test_cache = TestCache()
test_cache.maybe_load()
else:
test_cache = None
test_cache = TestCache(runs_per_test == 1)
test_cache.maybe_load()
if forever:
success = True
@ -249,8 +249,7 @@ if forever:
'All tests are now passing properly',
do_newline=True)
jobset.message('IDLE', 'No change detected')
if test_cache != None:
test_cache.save()
test_cache.save()
while not have_files_changed():
time.sleep(1)
else:

Loading…
Cancel
Save