Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(485)

Side by Side Diff: build/android/pylib/results/json_results.py

Issue 2251863003: Add tombstones as part of json-results-file for android instr tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor fixes Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/android/pylib/instrumentation/test_result.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import collections 5 import collections
6 import itertools 6 import itertools
7 import json 7 import json
8 8
9 from pylib.base import base_test_result 9 from pylib.base import base_test_result
10 10
11
12 def GenerateResultsDict(test_run_results): 11 def GenerateResultsDict(test_run_results):
13 """Create a results dict from |test_run_results| suitable for writing to JSON. 12 """Create a results dict from |test_run_results| suitable for writing to JSON.
14 Args: 13 Args:
15 test_run_results: a list of base_test_result.TestRunResults objects. 14 test_run_results: a list of base_test_result.TestRunResults objects.
16 Returns: 15 Returns:
17 A results dict that mirrors the one generated by 16 A results dict that mirrors the one generated by
18 base/test/launcher/test_results_tracker.cc:SaveSummaryAsJSON. 17 base/test/launcher/test_results_tracker.cc:SaveSummaryAsJSON.
19 """ 18 """
20 # Example json output. 19 # Example json output.
21 # { 20 # {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 all_tests = set() 88 all_tests = set()
90 per_iteration_data = [] 89 per_iteration_data = []
91 for test_run_result in test_run_results: 90 for test_run_result in test_run_results:
92 iteration_data = collections.defaultdict(list) 91 iteration_data = collections.defaultdict(list)
93 if isinstance(test_run_result, list): 92 if isinstance(test_run_result, list):
94 results_iterable = itertools.chain(*(t.GetAll() for t in test_run_result)) 93 results_iterable = itertools.chain(*(t.GetAll() for t in test_run_result))
95 else: 94 else:
96 results_iterable = test_run_result.GetAll() 95 results_iterable = test_run_result.GetAll()
97 96
98 for r in results_iterable: 97 for r in results_iterable:
99 iteration_data[r.GetName()].append({ 98 result_dict = {
100 'status': status_as_string(r.GetType()), 99 'status': status_as_string(r.GetType()),
101 'elapsed_time_ms': r.GetDuration(), 100 'elapsed_time_ms': r.GetDuration(),
102 'output_snippet': r.GetLog(), 101 'output_snippet': r.GetLog(),
103 'losless_snippet': '', 102 'losless_snippet': '',
104 'output_snippet_base64:': '', 103 'output_snippet_base64:': '',
105 }) 104 'tombstones': r.GetTombstones() or '',
105 }
106 iteration_data[r.GetName()].append(result_dict)
106 107
107 all_tests = all_tests.union(set(iteration_data.iterkeys())) 108 all_tests = all_tests.union(set(iteration_data.iterkeys()))
108 per_iteration_data.append(iteration_data) 109 per_iteration_data.append(iteration_data)
109 110
110 return { 111 return {
111 'global_tags': [], 112 'global_tags': [],
112 'all_tests': sorted(list(all_tests)), 113 'all_tests': sorted(list(all_tests)),
113 # TODO(jbudorick): Add support for disabled tests within base_test_result. 114 # TODO(jbudorick): Add support for disabled tests within base_test_result.
114 'disabled_tests': [], 115 'disabled_tests': [],
115 'per_iteration_data': per_iteration_data, 116 'per_iteration_data': per_iteration_data,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 testsuite_runs = json_results['per_iteration_data'] 157 testsuite_runs = json_results['per_iteration_data']
157 for testsuite_run in testsuite_runs: 158 for testsuite_run in testsuite_runs:
158 for test, test_runs in testsuite_run.iteritems(): 159 for test, test_runs in testsuite_run.iteritems():
159 results_list.extend( 160 results_list.extend(
160 [base_test_result.BaseTestResult(test, 161 [base_test_result.BaseTestResult(test,
161 string_as_status(tr['status']), 162 string_as_status(tr['status']),
162 duration=tr['elapsed_time_ms']) 163 duration=tr['elapsed_time_ms'])
163 for tr in test_runs]) 164 for tr in test_runs])
164 return results_list 165 return results_list
165 166
OLDNEW
« no previous file with comments | « build/android/pylib/instrumentation/test_result.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698