mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
[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
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user