Upstream version 6.35.121.0
[platform/framework/web/crosswalk.git] / src / tools / perf / benchmarks / maps.py
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
3 # found in the LICENSE file.
4
5 """Runs a Google Maps performance test.
6 Rerforms several common navigation actions on the map (pan, zoom, rotate)"""
7
8 import os
9 import re
10
11 from telemetry import test
12 from telemetry.core import util
13 from telemetry.page import page_measurement
14 from telemetry.page import page_set
15
16
17 class _MapsMeasurement(page_measurement.PageMeasurement):
18   def MeasurePage(self, page, tab, results):
19     js_get_results = 'document.getElementsByTagName("pre")[0].innerText'
20     test_results = tab.EvaluateJavaScript(js_get_results)
21
22     total = re.search('total=([0-9]+)', test_results).group(1)
23     render = re.search('render=([0-9.]+),([0-9.]+)', test_results).group(2)
24     results.Add('total_time', 'ms', total)
25     results.Add('render_mean_time', 'ms', render)
26
27 @test.Disabled
28 class MapsBenchmark(test.Test):
29   """Basic Google Maps benchmarks."""
30   test = _MapsMeasurement
31
32   def CreatePageSet(self, options):
33     page_set_path = os.path.join(
34         util.GetChromiumSrcDir(), 'tools', 'perf', 'page_sets')
35     page_set_dict = {
36       'archive_data_file': 'data/maps.json',
37       'make_javascript_deterministic': False,
38       'pages': [
39         {
40           'url': 'http://localhost:10020/tracker.html',
41           'navigate_steps' : [
42             { 'action': 'navigate' },
43             { 'action': 'wait', 'javascript': 'window.testDone' }
44           ]
45         }
46       ]
47     }
48
49     return page_set.PageSet.FromDict(page_set_dict, page_set_path)
50
51 class MapsNoVsync(MapsBenchmark):
52   """Runs the Google Maps benchmark with Vsync disabled"""
53   tag = 'novsync'
54
55   def CustomizeBrowserOptions(self, options):
56     options.AppendExtraBrowserArgs('--disable-gpu-vsync')