run.py revision 8c59003cc382e4b2fb15b267aa2d356e869a89cc
1import time 2import traceback 3 4import lit.Test 5 6class Run(object): 7 """ 8 This class represents a concrete, configured testing run. 9 """ 10 11 def __init__(self, lit_config, tests): 12 self.lit_config = lit_config 13 self.tests = tests 14 15 def execute_test(self, test): 16 result = None 17 startTime = time.time() 18 try: 19 result = test.config.test_format.execute(test, self.lit_config) 20 21 # Support deprecated result from execute() which returned the result 22 # code and additional output as a tuple. 23 if isinstance(result, tuple): 24 code, output = result 25 result = lit.Test.Result(code, output) 26 elif not isinstance(result, lit.Test.Result): 27 raise ValueError("unexpected result from test execution") 28 except KeyboardInterrupt: 29 raise 30 except: 31 if self.lit_config.debug: 32 raise 33 output = 'Exception during script execution:\n' 34 output += traceback.format_exc() 35 output += '\n' 36 result = lit.Test.Result(lit.Test.UNRESOLVED, output) 37 result.elapsed = time.time() - startTime 38 39 test.setResult(result) 40