From 0554f6fd6d96a3758f0034737816f4b9104c5355 Mon Sep 17 00:00:00 2001 From: Julian Lettner Date: Fri, 18 Oct 2019 17:31:48 +0000 Subject: [PATCH] [lit] Remove unnecessary tracking of test_index git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375263 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/lit/lit/run.py | 14 ++++++-------- utils/lit/lit/worker.py | 14 +++++--------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/utils/lit/lit/run.py b/utils/lit/lit/run.py index c178128c93b..29335bd59ad 100644 --- a/utils/lit/lit/run.py +++ b/utils/lit/lit/run.py @@ -65,7 +65,7 @@ class Run(object): return end - start - def _consume_test_result(self, pool_result): + def _consume_test_result(self, test, result): """Test completion callback for lit.worker.run_one_test Updates the test result status in the parent process. Each task in the @@ -79,8 +79,6 @@ class Run(object): if self.hit_max_failures: return - (test_index, result) = pool_result - test = self.tests[test_index] # Update the parent process copy of the test. This includes the result, # XFAILS, REQUIRES, and UNSUPPORTED statuses. test.setResult(result) @@ -100,9 +98,9 @@ class SerialRun(Run): def _execute(self, deadline): # TODO(yln): ignores deadline - for test_index, test in enumerate(self.tests): + for test in self.tests: result = lit.worker._execute_test(test, self.lit_config) - self._consume_test_result((test_index, result)) + self._consume_test_result(test, result) if self.hit_max_failures: break @@ -137,9 +135,9 @@ class ParallelRun(Run): try: async_results = [pool.apply_async(lit.worker.run_one_test, - args=(test_index, test), - callback=self._consume_test_result) - for test_index, test in enumerate(self.tests)] + args=(test,), + callback=lambda r,t=test: self._consume_test_result(t, r)) + for test in self.tests] pool.close() # Wait for all results to come in. The callback that runs in the diff --git a/utils/lit/lit/worker.py b/utils/lit/lit/worker.py index 283d129bd22..5527d97f2d8 100644 --- a/utils/lit/lit/worker.py +++ b/utils/lit/lit/worker.py @@ -16,7 +16,7 @@ def initializer(lit_config, parallelism_semaphores): _lit_config = lit_config _parallelism_semaphores = parallelism_semaphores -def run_one_test(test_index, test): +def run_one_test(test): """Run one test in a multiprocessing.Pool Side effects in this function and functions it calls are not visible in the @@ -24,16 +24,12 @@ def run_one_test(test_index, test): Arguments and results of this function are pickled, so they should be cheap to copy. For efficiency, we copy all data needed to execute all tests into - each worker and store it in the worker_* global variables. This reduces the - cost of each task. - - Returns an index and a Result, which the parent process uses to update - the display. + each worker and store it in global variables. This reduces the cost of each + task. """ try: - result = _execute_test_in_parallelism_group(test, _lit_config, - _parallelism_semaphores) - return (test_index, result) + return _execute_test_in_parallelism_group(test, _lit_config, + _parallelism_semaphores) except KeyboardInterrupt: # If a worker process gets an interrupt, abort it immediately. lit.util.abort_now() -- 2.11.4.GIT