Index: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations.py |
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations.py |
index b875bd2ee01a39a4f09db654318e75620839cd82..4bda1717fb784e70cf5f4aaccea4c473e28a6fc7 100644 |
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations.py |
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations.py |
@@ -227,6 +227,37 @@ class BotTestExpectations(object): |
unexpected_results_by_path[test_path] = sorted(map(exp_to_string, expectations)) |
return unexpected_results_by_path |
+ def all_results_by_path(self): |
+ """Returns all seen result types for each test. |
+ |
+ Returns a dictionary from each test path that has a result to a list of distinct, sorted result |
+ strings. For example, if the test results are as follows: |
+ |
+ a.html IMAGE IMAGE PASS PASS PASS TIMEOUT PASS TEXT |
+ b.html PASS PASS PASS PASS PASS PASS PASS PASS |
+ c.html |
+ |
+ This method will return: |
+ { |
+ 'a.html': ['IMAGE', 'TEXT', 'TIMEOUT', 'PASS'], |
+ 'b.html': ['PASS'], |
+ } |
+ """ |
+ results_by_path = {} |
+ for test_path, entry in self.results_json.walk_results(): |
+ results_dict = entry.get(self.results_json.RESULTS_KEY, {}) |
+ |
+ result_types = self._all_types_in_results(results_dict) |
+ |
+ if not result_types: |
+ continue |
+ |
+ # Distinct results as non-encoded strings. |
+ result_strings = map(self.results_json.expectation_for_type, result_types) |
+ |
+ results_by_path[test_path] = sorted(result_strings) |
+ return results_by_path |
+ |
def expectation_lines(self, only_ignore_very_flaky): |
lines = [] |
for test_path, entry in self.results_json.walk_results(): |