OLD | NEW |
1 def convert_trie_to_flat_paths(trie, prefix=None): | 1 def convert_trie_to_flat_paths(trie, prefix, sep): |
2 # Cloned from webkitpy.layout_tests.layout_package.json_results_generator | 2 # Cloned from webkitpy.layout_tests.layout_package.json_results_generator |
3 # so that this code can stand alone. | 3 # so that this code can stand alone. |
4 result = {} | 4 result = {} |
5 for name, data in trie.iteritems(): | 5 for name, data in trie.iteritems(): |
6 if prefix: | 6 if prefix: |
7 name = prefix + "/" + name | 7 name = prefix + sep + name |
8 | 8 |
9 if len(data) and not "actual" in data and not "expected" in data: | 9 if len(data) and not "actual" in data and not "expected" in data: |
10 result.update(convert_trie_to_flat_paths(data, name)) | 10 result.update(convert_trie_to_flat_paths(data, name, sep)) |
11 else: | 11 else: |
12 result[name] = data | 12 result[name] = data |
13 | 13 |
14 return result | 14 return result |
15 | 15 |
16 | 16 |
17 # TODO(phajdan.jr): Rename to LayoutTestResults. | |
18 class TestResults(object): | 17 class TestResults(object): |
19 def __init__(self, jsonish=None): | 18 def __init__(self, jsonish=None): |
20 self.raw = jsonish or {} | 19 self.raw = jsonish or {} |
21 self.valid = (jsonish is not None) | 20 self.valid = (jsonish is not None) |
22 | 21 |
23 self.tests = convert_trie_to_flat_paths(self.raw.get('tests', {})) | 22 tests = self.raw.get('tests', {}) |
| 23 sep = self.raw.get('path_delimiter', '/') |
| 24 self.tests = convert_trie_to_flat_paths(tests, prefix=None, sep=sep) |
| 25 |
24 self.passes = {} | 26 self.passes = {} |
25 self.unexpected_passes = {} | 27 self.unexpected_passes = {} |
26 self.failures = {} | 28 self.failures = {} |
27 self.unexpected_failures = {} | 29 self.unexpected_failures = {} |
28 self.flakes = {} | 30 self.flakes = {} |
29 self.unexpected_flakes = {} | 31 self.unexpected_flakes = {} |
30 | 32 |
31 # TODO(dpranke): crbug.com/357866 - we should simplify the handling of | 33 # TODO(dpranke): crbug.com/357866 - we should simplify the handling of |
32 # both the return code and parsing the actual results, below. | 34 # both the return code and parsing the actual results, below. |
33 | 35 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 else: | 120 else: |
119 self.failures.add(test_fullname) | 121 self.failures.add(test_fullname) |
120 | 122 |
121 # With multiple iterations a test could have passed in one but failed | 123 # With multiple iterations a test could have passed in one but failed |
122 # in another. Remove tests that ever failed from the passing set. | 124 # in another. Remove tests that ever failed from the passing set. |
123 self.passes -= self.failures | 125 self.passes -= self.failures |
124 | 126 |
125 def as_jsonish(self): | 127 def as_jsonish(self): |
126 ret = self.raw.copy() | 128 ret = self.raw.copy() |
127 return ret | 129 return ret |
OLD | NEW |