Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (C) 2012 Google Inc. All rights reserved. | 1 # Copyright (C) 2012 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 30 | 30 |
| 31 import os | 31 import os |
| 32 import json | 32 import json |
| 33 import logging | 33 import logging |
| 34 import optparse | 34 import optparse |
| 35 import time | 35 import time |
| 36 import datetime | 36 import datetime |
| 37 | 37 |
| 38 from webkitpy.common import find_files | 38 from webkitpy.common import find_files |
| 39 from webkitpy.common.checkout.scm.detection import SCMDetector | 39 from webkitpy.common.checkout.scm.detection import SCMDetector |
| 40 from webkitpy.common.config.urls import view_source_url | |
| 41 from webkitpy.common.host import Host | 40 from webkitpy.common.host import Host |
| 42 from webkitpy.common.net.file_uploader import FileUploader | 41 from webkitpy.common.net.file_uploader import FileUploader |
| 43 from webkitpy.performance_tests.perftest import PerfTestFactory | 42 from webkitpy.performance_tests.perftest import PerfTestFactory |
| 44 from webkitpy.performance_tests.perftest import DEFAULT_TEST_RUNNER_COUNT | 43 from webkitpy.performance_tests.perftest import DEFAULT_TEST_RUNNER_COUNT |
| 45 | 44 |
| 46 | 45 |
| 47 _log = logging.getLogger(__name__) | 46 _log = logging.getLogger(__name__) |
| 48 | 47 |
| 49 | 48 |
| 50 class PerfTestsRunner(object): | 49 class PerfTestsRunner(object): |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 287 | 286 |
| 288 for test, metrics in self._results: | 287 for test, metrics in self._results: |
| 289 for metric_name, iteration_values in metrics.iteritems(): | 288 for metric_name, iteration_values in metrics.iteritems(): |
| 290 if not isinstance(iteration_values, list): # We can't reports r esults without individual measurements. | 289 if not isinstance(iteration_values, list): # We can't reports r esults without individual measurements. |
| 291 continue | 290 continue |
| 292 | 291 |
| 293 tests = contents['tests'] | 292 tests = contents['tests'] |
| 294 path = test.test_name_without_file_extension().split('/') | 293 path = test.test_name_without_file_extension().split('/') |
| 295 for i in range(0, len(path)): | 294 for i in range(0, len(path)): |
| 296 is_last_token = i + 1 == len(path) | 295 is_last_token = i + 1 == len(path) |
| 297 url = view_source_url('PerformanceTests/' + (test.test_name( ) if is_last_token else '/'.join(path[0:i + 1]))) | 296 url = self.view_source_url( |
| 297 'PerformanceTests/' + (test.test_name() if is_last_token else '/'.join(path[0:i + 1]))) | |
| 298 tests.setdefault(path[i], {'url': url}) | 298 tests.setdefault(path[i], {'url': url}) |
| 299 current_test = tests[path[i]] | 299 current_test = tests[path[i]] |
| 300 if is_last_token: | 300 if is_last_token: |
| 301 current_test.setdefault('metrics', {}) | 301 current_test.setdefault('metrics', {}) |
| 302 assert metric_name not in current_test['metrics'] | 302 assert metric_name not in current_test['metrics'] |
| 303 current_test['metrics'][metric_name] = {'current': itera tion_values} | 303 current_test['metrics'][metric_name] = {'current': itera tion_values} |
| 304 else: | 304 else: |
| 305 current_test.setdefault('tests', {}) | 305 current_test.setdefault('tests', {}) |
| 306 tests = current_test['tests'] | 306 tests = current_test['tests'] |
| 307 | 307 |
| 308 return contents | 308 return contents |
| 309 | 309 |
| 310 @staticmethod | 310 @staticmethod |
| 311 def view_source_url(path_from_blink): | |
| 312 return "https://src.chromium.org/viewvc/blink/trunk/%s" % path_from_blin k | |
|
qyearsley
2016/08/03 18:13:53
Also, it seems likely that this should be updated
Dirk Pranke
2016/08/09 00:05:15
whichever you like. I'd probably do it in this CL.
qyearsley
2016/08/09 17:22:10
Done
| |
| 313 | |
| 314 @staticmethod | |
| 311 def _datetime_in_ES5_compatible_iso_format(datetime): | 315 def _datetime_in_ES5_compatible_iso_format(datetime): |
| 312 return datetime.strftime('%Y-%m-%dT%H:%M:%S.%f') | 316 return datetime.strftime('%Y-%m-%dT%H:%M:%S.%f') |
| 313 | 317 |
| 314 def _merge_slave_config_json(self, slave_config_json_path, contents): | 318 def _merge_slave_config_json(self, slave_config_json_path, contents): |
| 315 if not self._host.filesystem.isfile(slave_config_json_path): | 319 if not self._host.filesystem.isfile(slave_config_json_path): |
| 316 _log.error("Missing slave configuration JSON file: %s", slave_config _json_path) | 320 _log.error("Missing slave configuration JSON file: %s", slave_config _json_path) |
| 317 return None | 321 return None |
| 318 | 322 |
| 319 try: | 323 try: |
| 320 slave_config_json = self._host.filesystem.open_text_file_for_reading (slave_config_json_path) | 324 slave_config_json = self._host.filesystem.open_text_file_for_reading (slave_config_json_path) |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 373 if metrics: | 377 if metrics: |
| 374 self._results.append((test, metrics)) | 378 self._results.append((test, metrics)) |
| 375 else: | 379 else: |
| 376 failures += 1 | 380 failures += 1 |
| 377 _log.error('FAILED') | 381 _log.error('FAILED') |
| 378 | 382 |
| 379 _log.info('Finished: %f s', time.time() - start_time) | 383 _log.info('Finished: %f s', time.time() - start_time) |
| 380 _log.info('') | 384 _log.info('') |
| 381 | 385 |
| 382 return failures | 386 return failures |
| OLD | NEW |