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

Side by Side Diff: scripts/slave/unittests/results_dashboard_test.py

Issue 219773006: Revert of Make results_dashboard send just one request per test run. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Created 6 years, 8 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 | « scripts/slave/runtest.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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Test cases for results_dashboard.""" 6 """Test cases for results_dashboard."""
7 7
8 import datetime 8 import datetime
9 import json 9 import json
10 import os 10 import os
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 self.build_dir = tempfile.mkdtemp() 47 self.build_dir = tempfile.mkdtemp()
48 os.makedirs(os.path.join(self.build_dir, results_dashboard.CACHE_DIR)) 48 os.makedirs(os.path.join(self.build_dir, results_dashboard.CACHE_DIR))
49 self.cache_filename = os.path.join(self.build_dir, 49 self.cache_filename = os.path.join(self.build_dir,
50 results_dashboard.CACHE_DIR, 50 results_dashboard.CACHE_DIR,
51 results_dashboard.CACHE_FILENAME) 51 results_dashboard.CACHE_FILENAME)
52 52
53 def tearDown(self): 53 def tearDown(self):
54 self.mox.UnsetStubs() 54 self.mox.UnsetStubs()
55 shutil.rmtree(self.build_dir) 55 shutil.rmtree(self.build_dir)
56 56
57 def _TestSendResults(self, send_results_args, expected_new_json, errors, 57 def _SendResults(self, send_results_args, expected_new_json, errors,
58 mock_timestamp=False, webkit_master=False): 58 mock_timestamp=False, webkit_master=False):
59 """Test one call of SendResults with the given set of arguments. 59 """Test one call of SendResults with the given set of arguments.
60 60
61 Args: 61 Args:
62 send_results_args: The list of arguments to pass to SendResults. 62 send_results_args: The list of arguments to pass to SendResults.
63 expected_new_json: A list of JSON string expected to be sent. 63 expected_new_json: A list of JSON string expected to be sent.
64 errors: A list of corresponding errors expected to be received 64 errors: A list of corresponding errors expected to be received
65 (Each item in the list is either a string or None.) 65 (Each item in the list is either a string or None.)
66 mock_timestamp: Whether to stub out datetime with FakeDateTime(). 66 mock_timestamp: Whether to stub out datetime with FakeDateTime().
67 webkit_master: Whether GetActiveMaster should give the webkit master. 67 webkit_master: Whether GetActiveMaster should give the webkit master.
(...skipping 22 matching lines...) Expand all
90 if error: 90 if error:
91 urllib2.urlopen(IsEncodedJson(json_line)).AndRaise(error) 91 urllib2.urlopen(IsEncodedJson(json_line)).AndRaise(error)
92 else: 92 else:
93 urllib2.urlopen(IsEncodedJson(json_line)) 93 urllib2.urlopen(IsEncodedJson(json_line))
94 self.mox.ReplayAll() 94 self.mox.ReplayAll()
95 results_dashboard.SendResults(*send_results_args) 95 results_dashboard.SendResults(*send_results_args)
96 self.mox.VerifyAll() 96 self.mox.VerifyAll()
97 97
98 def test_SingleLogLine(self): 98 def test_SingleLogLine(self):
99 args = [ 99 args = [
100 { 100 'bar-summary.dat',
101 'bar-summary.dat': [ 101 ['{"traces": {"baz": ["100.0", "5.0"]},'
102 '{"traces": {"baz": ["100.0", "5.0"]},' 102 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
103 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 103 ' "v8_rev": "2345"}'],
104 ' "v8_rev": "2345"}'
105 ],
106 },
107 'linux-release', 104 'linux-release',
108 'foo', 105 'foo',
109 'https://chrome-perf.googleplex.com', 106 'https://chrome-perf.googleplex.com',
110 'chromium.perf', 107 'chromium.perf',
111 'XP Perf (1)', 108 'XP Perf (1)',
112 '7890', 109 '7890',
113 self.build_dir, 110 self.build_dir,
114 {}] 111 {}]
115 expected_new_json = [json.dumps([{ 112 expected_new_json = [json.dumps([{
116 'master': 'ChromiumPerf', 113 'master': 'ChromiumPerf',
117 'bot': 'linux-release', 114 'bot': 'linux-release',
118 'test': 'foo/bar/baz', 115 'test': 'foo/bar/baz',
119 'revision': 12345, 116 'revision': 12345,
120 'value': '100.0', 117 'value': '100.0',
121 'error': '5.0', 118 'error': '5.0',
122 'masterid': 'chromium.perf', 119 'masterid': 'chromium.perf',
123 'buildername': 'XP Perf (1)', 120 'buildername': 'XP Perf (1)',
124 'buildnumber': '7890', 121 'buildnumber': '7890',
125 'supplemental_columns': { 122 'supplemental_columns': {
126 'r_webkit_rev': '6789', 123 'r_webkit_rev': '6789',
127 'r_webrtc_rev': '3456', 124 'r_webrtc_rev': '3456',
128 'r_v8_rev': '2345', 125 'r_v8_rev': '2345',
129 }}])] 126 }}])]
130 errors = [None] 127 errors = [None]
131 self._TestSendResults(args, expected_new_json, errors) 128 self._SendResults(args, expected_new_json, errors)
132 129
133 def test_SupplementalColumns(self): 130 def test_SupplementalColumns(self):
134 args = [ 131 args = [
135 { 132 'bar-summary.dat',
136 'bar-summary.dat': [ 133 ['{"traces": {"baz": ["100.0", "5.0"]},'
137 '{"traces": {"baz": ["100.0", "5.0"]},' 134 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
138 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 135 ' "v8_rev": "2345"}'],
139 ' "v8_rev": "2345"}'
140 ],
141 },
142 'linux-release', 136 'linux-release',
143 'foo', 137 'foo',
144 'https://chrome-perf.googleplex.com', 138 'https://chrome-perf.googleplex.com',
145 'chromium.perf', 139 'chromium.perf',
146 'XP Perf (1)', 140 'XP Perf (1)',
147 '7890', self.build_dir, 141 '7890', self.build_dir,
148 { 142 {
149 'r_webkit_rev': '6789', 143 'r_webkit_rev': '6789',
150 'r_webrtc_rev': '3456', 144 'r_webrtc_rev': '3456',
151 'r_v8_rev': '2345', 145 'r_v8_rev': '2345',
(...skipping 11 matching lines...) Expand all
163 'buildername': 'XP Perf (1)', 157 'buildername': 'XP Perf (1)',
164 'buildnumber': '7890', 158 'buildnumber': '7890',
165 'supplemental_columns': { 159 'supplemental_columns': {
166 'r_webkit_rev': '6789', 160 'r_webkit_rev': '6789',
167 'r_webrtc_rev': '3456', 161 'r_webrtc_rev': '3456',
168 'r_v8_rev': '2345', 162 'r_v8_rev': '2345',
169 'r_foo': 'SHA1', 163 'r_foo': 'SHA1',
170 'r_bar': 'SHA2', 164 'r_bar': 'SHA2',
171 }}])] 165 }}])]
172 errors = [None] 166 errors = [None]
173 self._TestSendResults(args, expected_new_json, errors) 167 self._SendResults(args, expected_new_json, errors)
174 168
175 def test_UnitsLogLine(self): 169 def test_UnitsLogLine(self):
176 args = [ 170 args = [
177 { 171 'bar-summary.dat',
178 'bar-summary.dat': [ 172 ['{"traces": {"baz": ["100.0", "5.0"]},'
179 '{"traces": {"baz": ["100.0", "5.0"]},' 173 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456", '
180 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456", ' 174 ' "v8_rev": "2345", "units": "ms"}',
181 ' "v8_rev": "2345", "units": "ms"}', 175 '{"traces": {"bam": ["100.0", "5.0"]},'
182 '{"traces": {"bam": ["100.0", "5.0"]},' 176 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456", '
183 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456", ' 177 ' "v8_rev": "2345", "units": ""}'],
184 ' "v8_rev": "2345", "units": ""}'
185 ],
186 },
187 'linux-release', 178 'linux-release',
188 'foo', 179 'foo',
189 'https://chrome-perf.googleplex.com', 180 'https://chrome-perf.googleplex.com',
190 'chromium.perf', 181 'chromium.perf',
191 'XP Perf (1)', 182 'XP Perf (1)',
192 '7890', 183 '7890',
193 self.build_dir, 184 self.build_dir,
194 {}] 185 {}]
195 expected_new_json = [json.dumps([{ 186 expected_new_json = [json.dumps([{
196 'master': 'ChromiumPerf', 187 'master': 'ChromiumPerf',
(...skipping 19 matching lines...) Expand all
216 'error': '5.0', 207 'error': '5.0',
217 'masterid': 'chromium.perf', 208 'masterid': 'chromium.perf',
218 'buildername': 'XP Perf (1)', 209 'buildername': 'XP Perf (1)',
219 'buildnumber': '7890', 210 'buildnumber': '7890',
220 'supplemental_columns': { 211 'supplemental_columns': {
221 'r_webkit_rev': '6789', 212 'r_webkit_rev': '6789',
222 'r_webrtc_rev': '3456', 213 'r_webrtc_rev': '3456',
223 'r_v8_rev': '2345', 214 'r_v8_rev': '2345',
224 }}])] 215 }}])]
225 errors = [None] 216 errors = [None]
226 self._TestSendResults(args, expected_new_json, errors) 217 self._SendResults(args, expected_new_json, errors)
227 218
228 def test_ImportantLogLine(self): 219 def test_ImportantLogLine(self):
229 args = [ 220 args = [
230 { 221 'bar-summary.dat',
231 'bar-summary.dat': [ 222 ['{"traces": {"one": ["1.0", "5.0"], "two": ["2.0", "0.0"]},'
232 '{"traces": {"one": ["1.0", "5.0"], "two": ["2.0", "0.0"]},' 223 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
233 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 224 ' "v8_rev": "2345", "units": "ms", '
234 ' "v8_rev": "2345", "units": "ms", ' 225 '"important": ["one"]}'],
235 '"important": ["one"]}'
236 ],
237 },
238 'linux-release', 226 'linux-release',
239 'foo', 227 'foo',
240 'https://chrome-perf.googleplex.com', 228 'https://chrome-perf.googleplex.com',
241 'chromium.perf', 229 'chromium.perf',
242 'XP Perf (1)', 230 'XP Perf (1)',
243 '7890', 231 '7890',
244 self.build_dir, 232 self.build_dir,
245 {}] 233 {}]
246 expected_new_json = [json.dumps([{ 234 expected_new_json = [json.dumps([{
247 'master': 'ChromiumPerf', 235 'master': 'ChromiumPerf',
(...skipping 21 matching lines...) Expand all
269 'units': 'ms', 257 'units': 'ms',
270 'masterid': 'chromium.perf', 258 'masterid': 'chromium.perf',
271 'buildername': 'XP Perf (1)', 259 'buildername': 'XP Perf (1)',
272 'buildnumber': '7890', 260 'buildnumber': '7890',
273 'supplemental_columns': { 261 'supplemental_columns': {
274 'r_webkit_rev': '6789', 262 'r_webkit_rev': '6789',
275 'r_webrtc_rev': '3456', 263 'r_webrtc_rev': '3456',
276 'r_v8_rev': '2345', 264 'r_v8_rev': '2345',
277 }}])] 265 }}])]
278 errors = [None] 266 errors = [None]
279 self._TestSendResults(args, expected_new_json, errors) 267 self._SendResults(args, expected_new_json, errors)
280 268
281 def test_MultipleLogLines(self): 269 def test_MultipleLogLines(self):
282 args = [ 270 args = [
283 { 271 'bar-summary.dat', [
284 'bar-summary.dat': [ 272 '{"traces": {"baz": ["100.0", "5.0"]},'
285 '{"traces": {"baz": ["100.0", "5.0"]},' 273 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
286 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 274 ' "v8_rev": "2345"}',
287 ' "v8_rev": "2345"}', 275 '{"traces": {"box": ["101.0", "4.0"]},'
288 '{"traces": {"box": ["101.0", "4.0"]},' 276 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
289 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 277 ' "v8_rev": "2345"}'],
290 ' "v8_rev": "2345"}'
291 ],
292 },
293 'linux-release', 278 'linux-release',
294 'foo', 279 'foo',
295 'https://chrome-perf.googleplex.com', 280 'https://chrome-perf.googleplex.com',
296 'chromium.perf', 281 'chromium.perf',
297 'XP Perf (1)', 282 'XP Perf (1)',
298 '7890', 283 '7890',
299 self.build_dir, 284 self.build_dir,
300 {}] 285 {}]
301 expected_new_json = [json.dumps([{ 286 expected_new_json = [json.dumps([{
302 'master': 'ChromiumPerf', 287 'master': 'ChromiumPerf',
(...skipping 18 matching lines...) Expand all
321 'error': '4.0', 306 'error': '4.0',
322 'masterid': 'chromium.perf', 307 'masterid': 'chromium.perf',
323 'buildername': 'XP Perf (1)', 308 'buildername': 'XP Perf (1)',
324 'buildnumber': '7890', 309 'buildnumber': '7890',
325 'supplemental_columns': { 310 'supplemental_columns': {
326 'r_webkit_rev': '6789', 311 'r_webkit_rev': '6789',
327 'r_webrtc_rev': '3456', 312 'r_webrtc_rev': '3456',
328 'r_v8_rev': '2345', 313 'r_v8_rev': '2345',
329 }}])] 314 }}])]
330 errors = [None] 315 errors = [None]
331 self._TestSendResults(args, expected_new_json, errors) 316 self._SendResults(args, expected_new_json, errors)
332 317
333 def test_ModifiedTraceNames(self): 318 def test_ModifiedTraceNames(self):
334 args = [ 319 args = [
335 { 320 'bar-summary.dat',
336 'bar-summary.dat': [ 321 ['{"traces": {"bar": ["100.0", "5.0"], "bar_ref": ["99.0", "2.0"],'
337 '{"traces": {"bar": ["100.0", "5.0"],' 322 ' "baz/y": ["101.0", "3.0"], "notchanged": ["102.0", "1.0"]},'
338 ' "bar_ref": ["99.0", "2.0"],' 323 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
339 ' "baz/y": ["101.0", "3.0"], "notchanged": ["102.0", "1.0"]},' 324 ' "v8_rev": "2345"}'],
340 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
341 ' "v8_rev": "2345"}'
342 ],
343 },
344 'linux-release', 325 'linux-release',
345 'foo', 326 'foo',
346 'https://chrome-perf.googleplex.com', 327 'https://chrome-perf.googleplex.com',
347 'chromium.perf', 328 'chromium.perf',
348 'XP Perf (1)', 329 'XP Perf (1)',
349 '7890', 330 '7890',
350 self.build_dir, 331 self.build_dir,
351 {}] 332 {}]
352 expected_new_json = [json.dumps([{ 333 expected_new_json = [json.dumps([{
353 'master': 'ChromiumPerf', 334 'master': 'ChromiumPerf',
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 'error': '1.0', 381 'error': '1.0',
401 'masterid': 'chromium.perf', 382 'masterid': 'chromium.perf',
402 'buildername': 'XP Perf (1)', 383 'buildername': 'XP Perf (1)',
403 'buildnumber': '7890', 384 'buildnumber': '7890',
404 'supplemental_columns': { 385 'supplemental_columns': {
405 'r_webkit_rev': '6789', 386 'r_webkit_rev': '6789',
406 'r_webrtc_rev': '3456', 387 'r_webrtc_rev': '3456',
407 'r_v8_rev': '2345', 388 'r_v8_rev': '2345',
408 }}])] 389 }}])]
409 errors = [None] 390 errors = [None]
410 self._TestSendResults(args, expected_new_json, errors) 391 self._SendResults(args, expected_new_json, errors)
411 392
412 def test_MultiValueRowUpload(self): 393 def test_MultiValueRowUpload(self):
413 args = [ 394 args = [
414 { 395 'my_endure_graph-summary.dat',
415 'my_endure_graph-summary.dat': [ 396 ['{"traces": {'
416 '{"traces": {' 397 '"total_dom_nodes": [["10", "123"], ["20.5", "234"]],'
417 '"total_dom_nodes": [["10", "123"], ["20.5", "234"]],' 398 '"event_listeners": [["10", "12"], ["20.5", "40"]]},'
418 '"event_listeners": [["10", "12"], ["20.5", "40"]]},' 399 ' "rev": "12345",'
419 ' "rev": "12345",' 400 ' "webkit_rev": "6789",'
420 ' "webkit_rev": "6789",' 401 ' "webrtc_rev": "3456",'
421 ' "webrtc_rev": "3456",' 402 ' "v8_rev": "2345",'
422 ' "v8_rev": "2345",' 403 ' "units": "count",'
423 ' "units": "count",' 404 ' "units_x": "seconds",'
424 ' "units_x": "seconds",' 405 ' "stack": false}'],
425 ' "stack": false}'
426 ],
427 },
428 'linux-release', 406 'linux-release',
429 'endure/test_name', 407 'endure/test_name',
430 'https://chrome-perf.googleplex.com', 408 'https://chrome-perf.googleplex.com',
431 'chromium.perf', 409 'chromium.perf',
432 'Linux (1)', 410 'Linux (1)',
433 '1234', 411 '1234',
434 self.build_dir, 412 self.build_dir,
435 {}] 413 {}]
436 expected_new_json = [json.dumps([{ 414 expected_new_json = [json.dumps([{
437 'master': 'ChromiumPerf', 415 'master': 'ChromiumPerf',
(...skipping 20 matching lines...) Expand all
458 'buildername': 'Linux (1)', 436 'buildername': 'Linux (1)',
459 'buildnumber': '1234', 437 'buildnumber': '1234',
460 'units': 'count', 438 'units': 'count',
461 'units_x': 'seconds', 439 'units_x': 'seconds',
462 'supplemental_columns': { 440 'supplemental_columns': {
463 'r_webkit_rev': '6789', 441 'r_webkit_rev': '6789',
464 'r_webrtc_rev': '3456', 442 'r_webrtc_rev': '3456',
465 'r_v8_rev': '2345' 443 'r_v8_rev': '2345'
466 }}])] 444 }}])]
467 errors = [None, None] 445 errors = [None, None]
468 self._TestSendResults(args, expected_new_json, errors) 446 self._SendResults(args, expected_new_json, errors)
469 447
470 def test_ByUrlGraph(self): 448 def test_ByUrlGraph(self):
471 args = [ 449 args = [
472 { 450 'bar_by_url-summary.dat',
473 'bar_by_url-summary.dat': [ 451 ['{"traces": {"baz": ["100.0", "5.0"]},'
474 '{"traces": {"baz": ["100.0", "5.0"]},' 452 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
475 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 453 '"v8_rev": "2345"}'],
476 '"v8_rev": "2345"}'
477 ],
478 },
479 'linux-release', 454 'linux-release',
480 'foo', 455 'foo',
481 'https://chrome-perf.googleplex.com', 456 'https://chrome-perf.googleplex.com',
482 'chromium.perf', 457 'chromium.perf',
483 'XP Perf (1)', 458 'XP Perf (1)',
484 '7890', 459 '7890',
485 self.build_dir, 460 self.build_dir,
486 {}] 461 {}]
487 expected_new_json = [json.dumps([{ 462 expected_new_json = [json.dumps([{
488 'master': 'ChromiumPerf', 463 'master': 'ChromiumPerf',
489 'bot': 'linux-release', 464 'bot': 'linux-release',
490 'test': 'foo/bar/baz', 465 'test': 'foo/bar/baz',
491 'revision': 12345, 466 'revision': 12345,
492 'value': '100.0', 467 'value': '100.0',
493 'error': '5.0', 468 'error': '5.0',
494 'masterid': 'chromium.perf', 469 'masterid': 'chromium.perf',
495 'buildername': 'XP Perf (1)', 470 'buildername': 'XP Perf (1)',
496 'buildnumber': '7890', 471 'buildnumber': '7890',
497 'supplemental_columns': { 472 'supplemental_columns': {
498 'r_webkit_rev': '6789', 473 'r_webkit_rev': '6789',
499 'r_webrtc_rev': '3456', 474 'r_webrtc_rev': '3456',
500 'r_v8_rev': '2345', 475 'r_v8_rev': '2345',
501 }}])] 476 }}])]
502 errors = [None] 477 errors = [None]
503 self._TestSendResults(args, expected_new_json, errors) 478 self._SendResults(args, expected_new_json, errors)
504 479
505 def test_GitHashToTimestamp(self): 480 def test_GitHashToTimestamp(self):
506 args = [ 481 args = [
507 { 482 'mean_frame_time-summary.dat',
508 'mean_frame_time-summary.dat': [ 483 ['{"traces": {"mean_frame_time": ["77.0964285714", "138.142773233"]},'
509 '{"traces":' 484 ' "rev": "2eca27b067e3e57c70e40b8b95d0030c5d7c1a7f",'
510 ' {"mean_frame_time": ["77.0964285714", "138.142773233"]},' 485 ' "webkit_rev": "bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc88",'
511 ' "rev": "2eca27b067e3e57c70e40b8b95d0030c5d7c1a7f",' 486 ' "webrtc_rev": "bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc86",'
512 ' "webkit_rev": "bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc88",' 487 ' "v8_rev": "bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc87",'
513 ' "webrtc_rev": "bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc86",' 488 ' "ver": "undefined", "chan": "undefined", "units": "ms",'
514 ' "v8_rev": "bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc87",' 489 ' "important": ["mean_frame_time"]}'],
515 ' "ver": "undefined", "chan": "undefined", "units": "ms",'
516 ' "important": ["mean_frame_time"]}'
517 ],
518 },
519 'linux-release', 490 'linux-release',
520 'smoothness_measurement', 491 'smoothness_measurement',
521 'https://chrome-perf.googleplex.com', 492 'https://chrome-perf.googleplex.com',
522 'chromium.perf', 493 'chromium.perf',
523 'Linux (1)', 494 'Linux (1)',
524 '1234', 495 '1234',
525 self.build_dir, 496 self.build_dir,
526 {}] 497 {}]
527 expected_new_json = [json.dumps([{ 498 expected_new_json = [json.dumps([{
528 'master': 'ChromiumPerf', 499 'master': 'ChromiumPerf',
529 'bot': 'linux-release', 500 'bot': 'linux-release',
530 'test': 'smoothness_measurement/mean_frame_time', 501 'test': 'smoothness_measurement/mean_frame_time',
531 'revision': 1375315200, 502 'revision': 1375315200,
532 'value': '77.0964285714', 503 'value': '77.0964285714',
533 'error': '138.142773233', 504 'error': '138.142773233',
534 'masterid': 'chromium.perf', 505 'masterid': 'chromium.perf',
535 'buildername': 'Linux (1)', 506 'buildername': 'Linux (1)',
536 'buildnumber': '1234', 507 'buildnumber': '1234',
537 'important': True, 508 'important': True,
538 'units': 'ms', 509 'units': 'ms',
539 'supplemental_columns': { 510 'supplemental_columns': {
540 'r_chromium': '2eca27b067e3e57c70e40b8b95d0030c5d7c1a7f', 511 'r_chromium': '2eca27b067e3e57c70e40b8b95d0030c5d7c1a7f',
541 'r_webkit_rev': 'bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc88', 512 'r_webkit_rev': 'bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc88',
542 'r_webrtc_rev': 'bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc86', 513 'r_webrtc_rev': 'bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc86',
543 'r_v8_rev': 'bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc87', 514 'r_v8_rev': 'bf9aa8d62561bb2e4d7bc09e9d9e8c6a665ddc87',
544 }}])] 515 }}])]
545 errors = [None] 516 errors = [None]
546 self._TestSendResults(args, expected_new_json, errors, mock_timestamp=True) 517 self._SendResults(args, expected_new_json, errors, mock_timestamp=True)
547 518
548 def test_WebkitUsesTimestamp(self): 519 def test_WebkitUsesTimestamp(self):
549 args = [ 520 args = [
550 { 521 'mean_frame_time-summary.dat',
551 'mean_frame_time-summary.dat': [ 522 ['{"traces": {"mean_frame_time": ["77.0964285714", "138.142773233"]},'
552 '{"traces":' 523 ' "rev": "12345",'
553 ' {"mean_frame_time": ["77.0964285714", "138.142773233"]},' 524 ' "webkit_rev": "23456",'
554 ' "rev": "12345",' 525 ' "webrtc_rev": "3456",'
555 ' "webkit_rev": "23456",' 526 ' "v8_rev": "34567",'
556 ' "webrtc_rev": "3456",' 527 ' "ver": "undefined", "chan": "undefined", "units": "ms",'
557 ' "v8_rev": "34567",' 528 ' "important": ["mean_frame_time"]}'],
558 ' "ver": "undefined", "chan": "undefined", "units": "ms",'
559 ' "important": ["mean_frame_time"]}'
560 ],
561 },
562 'linux-release', 529 'linux-release',
563 'smoothness_measurement', 530 'smoothness_measurement',
564 'https://chrome-perf.googleplex.com', 531 'https://chrome-perf.googleplex.com',
565 'chromium.webkit', 532 'chromium.webkit',
566 'Linux (1)', 533 'Linux (1)',
567 '1234', 534 '1234',
568 self.build_dir, 535 self.build_dir,
569 {}] 536 {}]
570 expected_new_json = [json.dumps([{ 537 expected_new_json = [json.dumps([{
571 'master': 'ChromiumWebkit', 538 'master': 'ChromiumWebkit',
572 'bot': 'linux-release', 539 'bot': 'linux-release',
573 'test': 'smoothness_measurement/mean_frame_time', 540 'test': 'smoothness_measurement/mean_frame_time',
574 'revision': 1375315200, 541 'revision': 1375315200,
575 'value': '77.0964285714', 542 'value': '77.0964285714',
576 'error': '138.142773233', 543 'error': '138.142773233',
577 'masterid': 'chromium.webkit', 544 'masterid': 'chromium.webkit',
578 'buildername': 'Linux (1)', 545 'buildername': 'Linux (1)',
579 'buildnumber': '1234', 546 'buildnumber': '1234',
580 'important': True, 547 'important': True,
581 'units': 'ms', 548 'units': 'ms',
582 'supplemental_columns': { 549 'supplemental_columns': {
583 'r_chromium_svn': 12345, 550 'r_chromium_svn': 12345,
584 'r_webkit_rev': '23456', 551 'r_webkit_rev': '23456',
585 'r_webrtc_rev': '3456', 552 'r_webrtc_rev': '3456',
586 'r_v8_rev': '34567', 553 'r_v8_rev': '34567',
587 }}])] 554 }}])]
588 errors = [None] 555 errors = [None]
589 self._TestSendResults(args, expected_new_json, errors, mock_timestamp=True, 556 self._SendResults(args, expected_new_json, errors, mock_timestamp=True,
590 webkit_master=True) 557 webkit_master=True)
591 558
592 def test_FailureRetried(self): 559 def test_FailureRetried(self):
593 args = [ 560 args = [
594 { 561 'bar-summary.dat',
595 'bar-summary.dat': [ 562 ['{"traces": {"baz": ["100.0", "5.0"]},'
596 '{"traces": {"baz": ["100.0", "5.0"]},' 563 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
597 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 564 ' "v8_rev": "2345"}'],
598 ' "v8_rev": "2345"}'
599 ],
600 },
601 'linux-release', 565 'linux-release',
602 'foo', 566 'foo',
603 'https://chrome-perf.googleplex.com', 567 'https://chrome-perf.googleplex.com',
604 'chromium.perf', 568 'chromium.perf',
605 'XP Perf (1)', 569 'XP Perf (1)',
606 '7890', 570 '7890',
607 self.build_dir, 571 self.build_dir,
608 {}] 572 {}]
609 expected_new_json = [json.dumps([{ 573 expected_new_json = [json.dumps([{
610 'master': 'ChromiumPerf', 574 'master': 'ChromiumPerf',
611 'bot': 'linux-release', 575 'bot': 'linux-release',
612 'test': 'foo/bar/baz', 576 'test': 'foo/bar/baz',
613 'revision': 12345, 577 'revision': 12345,
614 'value': '100.0', 578 'value': '100.0',
615 'error': '5.0', 579 'error': '5.0',
616 'masterid': 'chromium.perf', 580 'masterid': 'chromium.perf',
617 'buildername': 'XP Perf (1)', 581 'buildername': 'XP Perf (1)',
618 'buildnumber': '7890', 582 'buildnumber': '7890',
619 'supplemental_columns': { 583 'supplemental_columns': {
620 'r_webkit_rev': '6789', 584 'r_webkit_rev': '6789',
621 'r_webrtc_rev': '3456', 585 'r_webrtc_rev': '3456',
622 'r_v8_rev': '2345', 586 'r_v8_rev': '2345',
623 }}])] 587 }}])]
624 errors = [urllib2.URLError('reason')] 588 errors = [urllib2.URLError('reason')]
625 self._TestSendResults(args, expected_new_json, errors) 589 self._SendResults(args, expected_new_json, errors)
626 args2 = [ 590 args2 = [
627 { 591 'bar-summary.dat',
628 'bar-summary.dat': [ 592 ['{"traces": {"baz": ["101.0", "6.0"]},'
629 '{"traces": {"baz": ["101.0", "6.0"]},' 593 ' "rev": "12346", "webkit_rev": "6790", "webrtc_rev": "3456",'
630 ' "rev": "12346", "webkit_rev": "6790", "webrtc_rev": "3456",' 594 ' "v8_rev": "2345"}'],
631 ' "v8_rev": "2345"}'
632 ],
633 },
634 'linux-release', 595 'linux-release',
635 'foo', 596 'foo',
636 'https://chrome-perf.googleplex.com', 597 'https://chrome-perf.googleplex.com',
637 'chromium.perf', 598 'chromium.perf',
638 'XP Perf (1)', 599 'XP Perf (1)',
639 '7890', 600 '7890',
640 self.build_dir, 601 self.build_dir,
641 {}] 602 {}]
642 expected_new_json.append(json.dumps([{ 603 expected_new_json.append(json.dumps([{
643 'master': 'ChromiumPerf', 604 'master': 'ChromiumPerf',
644 'bot': 'linux-release', 605 'bot': 'linux-release',
645 'test': 'foo/bar/baz', 606 'test': 'foo/bar/baz',
646 'revision': 12346, 607 'revision': 12346,
647 'value': '101.0', 608 'value': '101.0',
648 'error': '6.0', 609 'error': '6.0',
649 'masterid': 'chromium.perf', 610 'masterid': 'chromium.perf',
650 'buildername': 'XP Perf (1)', 611 'buildername': 'XP Perf (1)',
651 'buildnumber': '7890', 612 'buildnumber': '7890',
652 'supplemental_columns': { 613 'supplemental_columns': {
653 'r_webkit_rev': '6790', 614 'r_webkit_rev': '6790',
654 'r_webrtc_rev': '3456', 615 'r_webrtc_rev': '3456',
655 'r_v8_rev': '2345', 616 'r_v8_rev': '2345',
656 } 617 }
657 }])) 618 }]))
658 errors = [None, None] 619 errors = [None, None]
659 self._TestSendResults(args2, expected_new_json, errors) 620 self._SendResults(args2, expected_new_json, errors)
660 621
661 def test_SuccessNotRetried(self): 622 def test_SuccessNotRetried(self):
662 args = [ 623 args = [
663 { 624 'bar-summary.dat',
664 'bar-summary.dat': [ 625 ['{"traces": {"baz": ["100.0", "5.0"]},'
665 '{"traces": {"baz": ["100.0", "5.0"]},' 626 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
666 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 627 ' "v8_rev": "2345"}'],
667 ' "v8_rev": "2345"}'
668 ],
669 },
670 'linux-release', 628 'linux-release',
671 'foo', 629 'foo',
672 'https://chrome-perf.googleplex.com', 630 'https://chrome-perf.googleplex.com',
673 'chromium.perf', 631 'chromium.perf',
674 'XP Perf (1)', 632 'XP Perf (1)',
675 '7890', 633 '7890',
676 self.build_dir, 634 self.build_dir,
677 {}] 635 {}]
678 expected_new_json = [json.dumps([{ 636 expected_new_json = [json.dumps([{
679 'master': 'ChromiumPerf', 637 'master': 'ChromiumPerf',
680 'bot': 'linux-release', 638 'bot': 'linux-release',
681 'test': 'foo/bar/baz', 639 'test': 'foo/bar/baz',
682 'revision': 12345, 640 'revision': 12345,
683 'value': '100.0', 641 'value': '100.0',
684 'error': '5.0', 642 'error': '5.0',
685 'masterid': 'chromium.perf', 643 'masterid': 'chromium.perf',
686 'buildername': 'XP Perf (1)', 644 'buildername': 'XP Perf (1)',
687 'buildnumber': '7890', 645 'buildnumber': '7890',
688 'supplemental_columns': { 646 'supplemental_columns': {
689 'r_webkit_rev': '6789', 647 'r_webkit_rev': '6789',
690 'r_webrtc_rev': '3456', 648 'r_webrtc_rev': '3456',
691 'r_v8_rev': '2345', 649 'r_v8_rev': '2345',
692 }}])] 650 }}])]
693 errors = [None] 651 errors = [None]
694 self._TestSendResults(args, expected_new_json, errors) 652 self._SendResults(args, expected_new_json, errors)
695 args2 = [ 653 args2 = [
696 { 654 'bar-summary.dat',
697 'bar-summary.dat': [ 655 ['{"traces": {"baz": ["101.0", "6.0"]},'
698 '{"traces": {"baz": ["101.0", "6.0"]},' 656 ' "rev": "12346", "webkit_rev": "6790", "webrtc_rev": "3456",'
699 ' "rev": "12346", "webkit_rev": "6790", "webrtc_rev": "3456",' 657 ' "v8_rev": "2345"}'],
700 ' "v8_rev": "2345"}'
701 ],
702 },
703 'linux-release', 658 'linux-release',
704 'foo', 659 'foo',
705 'https://chrome-perf.googleplex.com', 660 'https://chrome-perf.googleplex.com',
706 'chromium.perf', 661 'chromium.perf',
707 'XP Perf (1)', 662 'XP Perf (1)',
708 '7890', 663 '7890',
709 self.build_dir, 664 self.build_dir,
710 {}] 665 {}]
711 expected_new_json2 = [json.dumps([{ 666 expected_new_json2 = [json.dumps([{
712 'master': 'ChromiumPerf', 667 'master': 'ChromiumPerf',
713 'bot': 'linux-release', 668 'bot': 'linux-release',
714 'test': 'foo/bar/baz', 669 'test': 'foo/bar/baz',
715 'revision': 12346, 670 'revision': 12346,
716 'value': '101.0', 671 'value': '101.0',
717 'error': '6.0', 672 'error': '6.0',
718 'masterid': 'chromium.perf', 673 'masterid': 'chromium.perf',
719 'buildername': 'XP Perf (1)', 674 'buildername': 'XP Perf (1)',
720 'buildnumber': '7890', 675 'buildnumber': '7890',
721 'supplemental_columns': { 676 'supplemental_columns': {
722 'r_webkit_rev': '6790', 677 'r_webkit_rev': '6790',
723 'r_webrtc_rev': '3456', 678 'r_webrtc_rev': '3456',
724 'r_v8_rev': '2345', 679 'r_v8_rev': '2345',
725 } 680 }
726 }])] 681 }])]
727 errors = [None] 682 errors = [None]
728 self._TestSendResults(args2, expected_new_json2, errors) 683 self._SendResults(args2, expected_new_json2, errors)
729 684
730 def test_FailureCached(self): 685 def test_FailureCached(self):
731 args = [ 686 args = [
732 { 687 'bar-summary.dat',
733 'bar-summary.dat': [ 688 ['{"traces": {"baz": ["100.0", "5.0"]},'
734 '{"traces": {"baz": ["100.0", "5.0"]},' 689 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",'
735 ' "rev": "12345", "webkit_rev": "6789", "webrtc_rev": "3456",' 690 ' "v8_rev": "2345"}'],
736 ' "v8_rev": "2345"}'
737 ],
738 },
739 'linux-release', 691 'linux-release',
740 'foo', 692 'foo',
741 'https://chrome-perf.googleplex.com', 693 'https://chrome-perf.googleplex.com',
742 'chromium.perf', 694 'chromium.perf',
743 'XP Perf (1)', 695 'XP Perf (1)',
744 '7890', 696 '7890',
745 self.build_dir, 697 self.build_dir,
746 {}] 698 {}]
747 expected_new_json = [json.dumps([{ 699 expected_new_json = [json.dumps([{
748 'master': 'ChromiumPerf', 700 'master': 'ChromiumPerf',
749 'bot': 'linux-release', 701 'bot': 'linux-release',
750 'test': 'foo/bar/baz', 702 'test': 'foo/bar/baz',
751 'revision': 12345, 703 'revision': 12345,
752 'value': '100.0', 704 'value': '100.0',
753 'error': '5.0', 705 'error': '5.0',
754 'masterid': 'chromium.perf', 706 'masterid': 'chromium.perf',
755 'buildername': 'XP Perf (1)', 707 'buildername': 'XP Perf (1)',
756 'buildnumber': '7890', 708 'buildnumber': '7890',
757 'supplemental_columns': { 709 'supplemental_columns': {
758 'r_webkit_rev': '6789', 710 'r_webkit_rev': '6789',
759 'r_webrtc_rev': '3456', 711 'r_webrtc_rev': '3456',
760 'r_v8_rev': '2345', 712 'r_v8_rev': '2345',
761 }}])] 713 }}])]
762 errors = [urllib2.URLError('reason')] 714 errors = [urllib2.URLError('reason')]
763 self._TestSendResults(args, expected_new_json, errors) 715 self._SendResults(args, expected_new_json, errors)
764 cache_file = open(self.cache_filename, 'rb') 716 cache_file = open(self.cache_filename, 'rb')
765 actual_cache = cache_file.read() 717 actual_cache = cache_file.read()
766 cache_file.close() 718 cache_file.close()
767 # Compare the dicts loaded from the JSON instead of the actual JSON string, 719 # Compare the dicts loaded from the JSON instead of the actual JSON string,
768 # because the order of the fields in the string doesn't matter. 720 # because the order of the fields in the string doesn't matter.
769 self.assertEqual(json.loads(expected_new_json[0]), json.loads(actual_cache)) 721 self.assertEqual(json.loads(expected_new_json[0]), json.loads(actual_cache))
770 722
771 def test_NoResendAfterMultipleErrors(self): 723 def test_NoResendAfterMultipleErrors(self):
772 previous_lines = '\n'.join([ 724 previous_lines = '\n'.join([
773 json.dumps([{ 725 json.dumps([{
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 'supplemental_columns': { 765 'supplemental_columns': {
814 'r_webkit_rev': '6789', 766 'r_webkit_rev': '6789',
815 'r_webrtc_rev': '3456', 767 'r_webrtc_rev': '3456',
816 'r_v8_rev': '2345', 768 'r_v8_rev': '2345',
817 }}]) 769 }}])
818 ]) 770 ])
819 cache_file = open(self.cache_filename, 'wb') 771 cache_file = open(self.cache_filename, 'wb')
820 cache_file.write(previous_lines) 772 cache_file.write(previous_lines)
821 cache_file.close() 773 cache_file.close()
822 args = [ 774 args = [
823 { 775 'bar-summary.dat',
824 'bar-summary.dat': [ 776 ['{"traces": {"baz": ["102.0", "5.0"]},'
825 '{"traces": {"baz": ["102.0", "5.0"]},' 777 ' "rev": "12348", "webkit_rev": "6789", "v8_rev": "2345"}'],
826 ' "rev": "12348", "webkit_rev": "6789", "v8_rev": "2345"}'
827 ],
828 },
829 'linux-release', 778 'linux-release',
830 'foo', 779 'foo',
831 'https://chrome-perf.googleplex.com', 780 'https://chrome-perf.googleplex.com',
832 'chromium.perf', 781 'chromium.perf',
833 'XP Perf (1)', 782 'XP Perf (1)',
834 '7890', 783 '7890',
835 self.build_dir, 784 self.build_dir,
836 {}] 785 {}]
837 expected_new_json = [json.dumps([{ 786 expected_new_json = [json.dumps([{
838 'master': 'ChromiumPerf', 787 'master': 'ChromiumPerf',
839 'bot': 'linux-release', 788 'bot': 'linux-release',
840 'test': 'foo/bar/baz', 789 'test': 'foo/bar/baz',
841 'revision': 12345, 790 'revision': 12345,
842 'value': '100.0', 791 'value': '100.0',
843 'error': '5.0', 792 'error': '5.0',
844 'masterid': 'chromium.perf', 793 'masterid': 'chromium.perf',
845 'buildername': 'XP Perf (1)', 794 'buildername': 'XP Perf (1)',
846 'buildnumber': '7890', 795 'buildnumber': '7890',
847 'supplemental_columns': { 796 'supplemental_columns': {
848 'r_webkit_rev': '6789', 797 'r_webkit_rev': '6789',
849 'r_webrtc_rev': '3456', 798 'r_webrtc_rev': '3456',
850 'r_v8_rev': '2345', 799 'r_v8_rev': '2345',
851 }}])] 800 }}])]
852 errors = [urllib2.URLError('reason')] 801 errors = [urllib2.URLError('reason')]
853 self._TestSendResults(args, expected_new_json, errors) 802 self._SendResults(args, expected_new_json, errors)
854 cache_file = open(self.cache_filename, 'rb') 803 cache_file = open(self.cache_filename, 'rb')
855 actual_cache_lines = [l.strip() for l in cache_file.readlines()] 804 actual_cache_lines = [l.strip() for l in cache_file.readlines()]
856 cache_file.close() 805 cache_file.close()
857 self.assertEqual(4, len(actual_cache_lines)) 806 self.assertEqual(4, len(actual_cache_lines))
858 for line in previous_lines.split('\n') + expected_new_json: 807 for line in previous_lines.split('\n') + expected_new_json:
859 self.assertTrue(line in actual_cache_lines) 808 self.assertTrue(line in actual_cache_lines)
860 809
861 def test_ChunkList(self):
862 """Tests the list-chunking function."""
863 # Access to a protected member.
864 # pylint: disable=W0212
865 self.assertEqual(
866 [[1, 2, 3], [4, 5, 6], [7]],
867 results_dashboard._ChunkList([1, 2, 3, 4, 5, 6, 7], 3))
868 self.assertEqual(
869 [[1, 2, 3, 4, 5, 6, 7]],
870 results_dashboard._ChunkList([1, 2, 3, 4, 5, 6, 7], 7))
871 self.assertEqual(
872 [], results_dashboard._ChunkList([], 3))
873 self.assertEqual(
874 [[1, 2, 3], [4, 5, 6]],
875 results_dashboard._ChunkList([1, 2, 3, 4, 5, 6], 3))
876
877 810
878 if __name__ == '__main__': 811 if __name__ == '__main__':
879 unittest.main() 812 unittest.main()
OLDNEW
« no previous file with comments | « scripts/slave/runtest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698