diff options
-rw-r--r-- | llvm/utils/lit/lit/worker.py | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/llvm/utils/lit/lit/worker.py b/llvm/utils/lit/lit/worker.py index f97b6a04306..3a4868ea7c4 100644 --- a/llvm/utils/lit/lit/worker.py +++ b/llvm/utils/lit/lit/worker.py @@ -56,19 +56,20 @@ def _execute_test_in_parallelism_group(test, lit_config, parallelism_semaphores) else: _execute_test(test, lit_config) + def _execute_test(test, lit_config): """Execute one test""" + start = time.time() + result = _execute_test_handle_errors(test, lit_config) + end = time.time() + + result.elapsed = end - start + test.setResult(result) + + +def _execute_test_handle_errors(test, lit_config): try: - start_time = time.time() - result = test.config.test_format.execute(test, lit_config) - # Support deprecated result from execute() which returned the result - # code and additional output as a tuple. - if isinstance(result, tuple): - code, output = result - result = lit.Test.Result(code, output) - elif not isinstance(result, lit.Test.Result): - raise ValueError("unexpected result from test execution") - result.elapsed = time.time() - start_time + return _adapt_result(test.config.test_format.execute(test, lit_config)) except KeyboardInterrupt: raise except: @@ -77,6 +78,14 @@ def _execute_test(test, lit_config): output = 'Exception during script execution:\n' output += traceback.format_exc() output += '\n' - result = lit.Test.Result(lit.Test.UNRESOLVED, output) + return lit.Test.Result(lit.Test.UNRESOLVED, output) - test.setResult(result) + +# Support deprecated result from execute() which returned the result +# code and additional output as a tuple. +def _adapt_result(result): + if isinstance(result, lit.Test.Result): + return result + assert isinstance(result, tuple) + code, output = result + return lit.Test.Result(code, output) |