1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 11:33:24 +02:00

[lit] Remove unnecessary tracking of test_index

llvm-svn: 375263
This commit is contained in:
Julian Lettner 2019-10-18 17:31:48 +00:00
parent e55060e8c3
commit dbaacebca7
2 changed files with 11 additions and 17 deletions

View File

@ -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

View File

@ -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()