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