| OLD | NEW |
| 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 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 json | 5 import json |
| 6 import math | 6 import math |
| 7 import os | 7 import os |
| 8 | 8 |
| 9 from telemetry import test | 9 from telemetry import test |
| 10 from telemetry.core import util | 10 from telemetry.core import util |
| 11 from telemetry.page import page_measurement | 11 from telemetry.page import page_measurement |
| 12 from telemetry.page import page_set | 12 from telemetry.page import page_set |
| 13 | 13 from telemetry.page import result_data_type |
| 14 | 14 |
| 15 def _GeometricMean(values): | 15 def _GeometricMean(values): |
| 16 """Compute a rounded geometric mean from an array of values.""" | 16 """Compute a rounded geometric mean from an array of values.""" |
| 17 if not values: | 17 if not values: |
| 18 return None | 18 return None |
| 19 # To avoid infinite value errors, make sure no value is less than 0.001. | 19 # To avoid infinite value errors, make sure no value is less than 0.001. |
| 20 new_values = [] | 20 new_values = [] |
| 21 for value in values: | 21 for value in values: |
| 22 if value > 0.001: | 22 if value > 0.001: |
| 23 new_values.append(value) | 23 new_values.append(value) |
| (...skipping 20 matching lines...) Expand all Loading... |
| 44 try: | 44 try: |
| 45 def _IsDone(): | 45 def _IsDone(): |
| 46 return tab.GetCookieByName('__domperf_finished') == '1' | 46 return tab.GetCookieByName('__domperf_finished') == '1' |
| 47 util.WaitFor(_IsDone, 600, poll_interval=5) | 47 util.WaitFor(_IsDone, 600, poll_interval=5) |
| 48 | 48 |
| 49 data = json.loads(tab.EvaluateJavaScript('__domperf_result')) | 49 data = json.loads(tab.EvaluateJavaScript('__domperf_result')) |
| 50 for suite in data['BenchmarkSuites']: | 50 for suite in data['BenchmarkSuites']: |
| 51 # Skip benchmarks that we didn't actually run this time around. | 51 # Skip benchmarks that we didn't actually run this time around. |
| 52 if len(suite['Benchmarks']) or suite['score']: | 52 if len(suite['Benchmarks']) or suite['score']: |
| 53 results.Add(SCORE_TRACE_NAME, SCORE_UNIT, | 53 results.Add(SCORE_TRACE_NAME, SCORE_UNIT, |
| 54 suite['score'], suite['name'], 'unimportant') | 54 suite['score'], suite['name'], |
| 55 result_data_type.UNIMPORTANT) |
| 55 finally: | 56 finally: |
| 56 tab.EvaluateJavaScript('document.cookie = "__domperf_finished=0"') | 57 tab.EvaluateJavaScript('document.cookie = "__domperf_finished=0"') |
| 57 | 58 |
| 58 def DidRunTest(self, tab, results): | 59 def DidRunTest(self, tab, results): |
| 59 # Now give the geometric mean as the total for the combined runs. | 60 # Now give the geometric mean as the total for the combined runs. |
| 60 scores = [] | 61 scores = [] |
| 61 for result in results.page_results: | 62 for result in results.page_results: |
| 62 scores.append(result[SCORE_TRACE_NAME].output_value) | 63 scores.append(result[SCORE_TRACE_NAME].output_value) |
| 63 total = _GeometricMean(scores) | 64 total = _GeometricMean(scores) |
| 64 results.AddSummary(SCORE_TRACE_NAME, SCORE_UNIT, total, 'Total') | 65 results.AddSummary(SCORE_TRACE_NAME, SCORE_UNIT, total, 'Total') |
| (...skipping 17 matching lines...) Expand all Loading... |
| 82 { 'url': base_page + 'CreateNodes' }, | 83 { 'url': base_page + 'CreateNodes' }, |
| 83 { 'url': base_page + 'DOMDivWalk' }, | 84 { 'url': base_page + 'DOMDivWalk' }, |
| 84 { 'url': base_page + 'DOMTable' }, | 85 { 'url': base_page + 'DOMTable' }, |
| 85 { 'url': base_page + 'DOMWalk' }, | 86 { 'url': base_page + 'DOMWalk' }, |
| 86 { 'url': base_page + 'Events' }, | 87 { 'url': base_page + 'Events' }, |
| 87 { 'url': base_page + 'Get+Elements' }, | 88 { 'url': base_page + 'Get+Elements' }, |
| 88 { 'url': base_page + 'GridSort' }, | 89 { 'url': base_page + 'GridSort' }, |
| 89 { 'url': base_page + 'Template' } | 90 { 'url': base_page + 'Template' } |
| 90 ] | 91 ] |
| 91 }, dom_perf_dir) | 92 }, dom_perf_dir) |
| OLD | NEW |