[lit] worker.py: Improve code for executing a single test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375194 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/lit/lit/worker.py b/utils/lit/lit/worker.py
index f97b6a0..3a4868e 100644
--- a/utils/lit/lit/worker.py
+++ b/utils/lit/lit/worker.py
@@ -56,19 +56,20 @@
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 @@
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)