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