1import os 2try: 3 import ConfigParser 4except ImportError: 5 import configparser as ConfigParser 6 7import lit.formats 8import lit.Test 9 10class DummyFormat(lit.formats.FileBasedTest): 11 def execute(self, test, lit_config): 12 # In this dummy format, expect that each test file is actually just a 13 # .ini format dump of the results to report. 14 15 source_path = test.getSourcePath() 16 17 cfg = ConfigParser.ConfigParser() 18 cfg.read(source_path) 19 20 # Create the basic test result. 21 result_code = cfg.get('global', 'result_code') 22 result_output = cfg.get('global', 'result_output') 23 result = lit.Test.Result(getattr(lit.Test, result_code), 24 result_output) 25 26 # Load additional metrics. 27 for key,value_str in cfg.items('results'): 28 value = eval(value_str) 29 if isinstance(value, int): 30 metric = lit.Test.IntMetricValue(value) 31 elif isinstance(value, float): 32 metric = lit.Test.RealMetricValue(value) 33 else: 34 raise RuntimeError("unsupported result type") 35 result.addMetric(key, metric) 36 37 # Create micro test results 38 for key,micro_name in cfg.items('micro-tests'): 39 micro_result = lit.Test.Result(getattr(lit.Test, result_code, '')) 40 # Load micro test additional metrics 41 for key,value_str in cfg.items('micro-results'): 42 value = eval(value_str) 43 if isinstance(value, int): 44 metric = lit.Test.IntMetricValue(value) 45 elif isinstance(value, float): 46 metric = lit.Test.RealMetricValue(value) 47 else: 48 raise RuntimeError("unsupported result type") 49 micro_result.addMetric(key, metric) 50 result.addMicroResult(micro_name, micro_result) 51 52 return result 53