diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py index 0214e95ed363f5dde3ae40bd7c044035a5ecf114..bb1c862f1addaef32e299c0d1206cc35d567161b 100755 --- a/tools/run_tests/jobset.py +++ b/tools/run_tests/jobset.py @@ -165,7 +165,10 @@ def _never_cancelled(): return False -def run(cmdlines, check_cancelled=_never_cancelled, maxjobs=None, newline_on_success=False): +def run(cmdlines, + check_cancelled=_never_cancelled, + maxjobs=None, + newline_on_success=False): js = Jobset(check_cancelled, maxjobs if maxjobs is not None else _DEFAULT_MAX_JOBS, newline_on_success) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 460a945cee08c82b2fa7781be9fbdb4596b4b24e..0536ed68511327d11b2476302dc6b5f0fb895700 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -102,12 +102,8 @@ def _build_and_run(check_cancelled, newline_on_success, forever=False): check_cancelled, newline_on_success=newline_on_success, maxjobs=min(c.maxjobs for c in run_configs)): - if not forever: - jobset.message('FAILED', 'Some tests failed', do_newline=True) return 2 - if not forever: - jobset.message('SUCCESS', 'All tests passed', do_newline=True) return 0 @@ -118,12 +114,21 @@ if forever: initial_time = dw.most_recent_change() have_files_changed = lambda: dw.most_recent_change() != initial_time previous_success = success - success = _build_and_run(have_files_changed, newline_on_success=False, forever=True) == 0 + success = _build_and_run(have_files_changed, + newline_on_success=False, + forever=True) == 0 if not previous_success and success: - jobset.message('SUCCESS', 'All tests are now passing properly', do_newline=True) + jobset.message('SUCCESS', + 'All tests are now passing properly', + do_newline=True) jobset.message('IDLE', 'No change detected') while not have_files_changed(): time.sleep(1) else: - sys.exit(_build_and_run(lambda: False, newline_on_success=args.newline_on_success)) - + result = _build_and_run(lambda: False, + newline_on_success=args.newline_on_success) + if result == 0: + jobset.message('SUCCESS', 'All tests passed', do_newline=True) + else: + jobset.message('FAILED', 'Some tests failed', do_newline=True) + sys.exit(result)