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 return result 38 39