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