OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 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 os | 5 import os |
6 | 6 |
7 from core import path_util | 7 from core import path_util |
8 from core import perf_benchmark | 8 from core import perf_benchmark |
9 | 9 |
10 from telemetry import benchmark | 10 from telemetry import benchmark |
11 from telemetry import page as page_module | 11 from telemetry import page as page_module |
12 from telemetry.page import legacy_page_test | 12 from telemetry.page import legacy_page_test |
13 from telemetry.page import shared_page_state | 13 from telemetry.page import shared_page_state |
14 from telemetry import story | 14 from telemetry import story |
15 from telemetry.timeline import bounds | 15 from telemetry.timeline import bounds |
16 from telemetry.timeline import model as model_module | 16 from telemetry.timeline import model as model_module |
17 from telemetry.timeline import tracing_config | 17 from telemetry.timeline import tracing_config |
18 | 18 |
19 from telemetry.value import list_of_scalar_values | 19 from telemetry.value import list_of_scalar_values |
20 from telemetry.value import scalar | 20 from telemetry.value import scalar |
21 from telemetry.value import trace | 21 from telemetry.value import trace |
22 | 22 |
23 | 23 |
24 from benchmarks import pywebsocket_server | |
25 from measurements import timeline_controller | 24 from measurements import timeline_controller |
26 from page_sets import webgl_supported_shared_state | 25 from page_sets import webgl_supported_shared_state |
27 | 26 |
28 | 27 |
29 BLINK_PERF_BASE_DIR = os.path.join(path_util.GetChromiumSrcDir(), | 28 BLINK_PERF_BASE_DIR = os.path.join(path_util.GetChromiumSrcDir(), |
30 'third_party', 'WebKit', 'PerformanceTests') | 29 'third_party', 'WebKit', 'PerformanceTests') |
31 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') | 30 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') |
32 | 31 |
33 | 32 |
34 def CreateStorySetFromPath(path, skipped_file, | 33 def CreateStorySetFromPath(path, skipped_file, |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 | 270 |
272 @classmethod | 271 @classmethod |
273 def Name(cls): | 272 def Name(cls): |
274 return 'blink_perf.' + cls.tag | 273 return 'blink_perf.' + cls.tag |
275 | 274 |
276 def CreateStorySet(self, options): | 275 def CreateStorySet(self, options): |
277 path = os.path.join(BLINK_PERF_BASE_DIR, self.subdir) | 276 path = os.path.join(BLINK_PERF_BASE_DIR, self.subdir) |
278 return CreateStorySetFromPath(path, SKIPPED_FILE) | 277 return CreateStorySetFromPath(path, SKIPPED_FILE) |
279 | 278 |
280 | 279 |
281 class _SharedPywebsocketPageState(shared_page_state.SharedPageState): | |
282 """Runs a pywebsocket server.""" | |
283 | |
284 def __init__(self, test, finder_options, user_story_set): | |
285 super(_SharedPywebsocketPageState, self).__init__( | |
286 test, finder_options, user_story_set) | |
287 self.platform.StartLocalServer(pywebsocket_server.PywebsocketServer()) | |
288 | |
289 | |
290 @benchmark.Owner(emails=['yukishiino@chromium.org', | 280 @benchmark.Owner(emails=['yukishiino@chromium.org', |
291 'bashi@chromium.org', | 281 'bashi@chromium.org', |
292 'haraken@chromium.org']) | 282 'haraken@chromium.org']) |
293 class BlinkPerfBindings(_BlinkPerfBenchmark): | 283 class BlinkPerfBindings(_BlinkPerfBenchmark): |
294 tag = 'bindings' | 284 tag = 'bindings' |
295 subdir = 'Bindings' | 285 subdir = 'Bindings' |
296 | 286 |
297 @classmethod | 287 @classmethod |
298 def ShouldDisable(cls, possible_browser): | 288 def ShouldDisable(cls, possible_browser): |
299 # http://crbug.com/563979 | 289 # http://crbug.com/563979 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 | 383 |
394 @benchmark.Owner(emails=['hayato@chromium.org']) | 384 @benchmark.Owner(emails=['hayato@chromium.org']) |
395 class BlinkPerfShadowDOM(_BlinkPerfBenchmark): | 385 class BlinkPerfShadowDOM(_BlinkPerfBenchmark): |
396 tag = 'shadow_dom' | 386 tag = 'shadow_dom' |
397 subdir = 'ShadowDOM' | 387 subdir = 'ShadowDOM' |
398 | 388 |
399 @classmethod | 389 @classmethod |
400 def ShouldDisable(cls, possible_browser): # http://crbug.com/702319 | 390 def ShouldDisable(cls, possible_browser): # http://crbug.com/702319 |
401 return possible_browser.platform.GetDeviceTypeName() == 'Nexus 5X' | 391 return possible_browser.platform.GetDeviceTypeName() == 'Nexus 5X' |
402 | 392 |
403 | |
404 | |
405 # Disabled on Windows and ChromeOS due to https://crbug.com/521887 | |
406 #@benchmark.Disabled('win', 'chromeos') | |
407 # Disabling on remaining platforms due to heavy flake https://crbug.com/646938 | |
408 @benchmark.Disabled('all') | |
409 @benchmark.Owner(emails=['tyoshino@chromium.org', 'yhirano@chromium.org']) | |
410 class BlinkPerfPywebsocket(_BlinkPerfBenchmark): | |
411 """The blink_perf.pywebsocket tests measure turn-around-time of 10MB | |
412 send/receive for XHR, Fetch API and WebSocket. We might ignore < 10% | |
413 regressions, because the tests are noisy and such regressions are | |
414 often unreproducible (https://crbug.com/549017). | |
415 """ | |
416 tag = 'pywebsocket' | |
417 subdir = 'Pywebsocket' | |
418 | |
419 def CreateStorySet(self, options): | |
420 path = os.path.join(BLINK_PERF_BASE_DIR, self.subdir) | |
421 return CreateStorySetFromPath( | |
422 path, SKIPPED_FILE, | |
423 shared_page_state_class=_SharedPywebsocketPageState) | |
424 | |
425 @classmethod | |
426 def ShouldDisable(cls, possible_browser): | |
427 return cls.IsSvelte(possible_browser) # http://crbug.com/551950 | |
OLD | NEW |