From 1d0db84277fbd1b5246aa5bb226c8a86f6c9cc6b Mon Sep 17 00:00:00 2001 From: "machenbach@chromium.org" Date: Thu, 15 May 2014 12:40:40 +0000 Subject: [PATCH] Fix deopt fuzzer after test runner changes. Use the same keyboard interrupt logic as run-tests. Close the perf database explicitly after one run, as it has two runs on the same architecture. Currently the first run closes on garbage collection, which might corrupt the second run. BUG= R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/284203002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- tools/run-deopt-fuzzer.py | 38 ++++++++++++++----------------------- tools/testrunner/local/execution.py | 1 + 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/tools/run-deopt-fuzzer.py b/tools/run-deopt-fuzzer.py index 21894ff..44a4ab5 100755 --- a/tools/run-deopt-fuzzer.py +++ b/tools/run-deopt-fuzzer.py @@ -319,8 +319,11 @@ def Main(): for mode in options.mode: for arch in options.arch: - code = Execute(arch, mode, args, options, suites, workspace) - exit_code = exit_code or code + try: + code = Execute(arch, mode, args, options, suites, workspace) + exit_code = exit_code or code + except KeyboardInterrupt: + return 2 return exit_code @@ -409,17 +412,11 @@ def Execute(arch, mode, args, options, suites, workspace): print "No tests to run." return 0 - try: - print(">>> Collection phase") - progress_indicator = progress.PROGRESS_INDICATORS[options.progress]() - runner = execution.Runner(suites, progress_indicator, ctx) + print(">>> Collection phase") + progress_indicator = progress.PROGRESS_INDICATORS[options.progress]() + runner = execution.Runner(suites, progress_indicator, ctx) - exit_code = runner.Run(options.j) - if runner.terminate: - return exit_code - - except KeyboardInterrupt: - return 1 + exit_code = runner.Run(options.j) print(">>> Analysis phase") num_tests = 0 @@ -462,19 +459,12 @@ def Execute(arch, mode, args, options, suites, workspace): print "No tests to run." return 0 - try: - print(">>> Deopt fuzzing phase (%d test cases)" % num_tests) - progress_indicator = progress.PROGRESS_INDICATORS[options.progress]() - runner = execution.Runner(suites, progress_indicator, ctx) - - exit_code = runner.Run(options.j) - if runner.terminate: - return exit_code + print(">>> Deopt fuzzing phase (%d test cases)" % num_tests) + progress_indicator = progress.PROGRESS_INDICATORS[options.progress]() + runner = execution.Runner(suites, progress_indicator, ctx) - except KeyboardInterrupt: - return 1 - - return exit_code + code = runner.Run(options.j) + return exit_code or code if __name__ == "__main__": diff --git a/tools/testrunner/local/execution.py b/tools/testrunner/local/execution.py index c095ea6..4dc62c2 100644 --- a/tools/testrunner/local/execution.py +++ b/tools/testrunner/local/execution.py @@ -138,6 +138,7 @@ class Runner(object): self.indicator.HasRun(test, has_unexpected_output) finally: pool.terminate() + self.perf_data_manager.close() if queued_exception: raise queued_exception -- 2.7.4