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 telemetry import benchmark | 7 from telemetry import benchmark |
8 from telemetry.core import util | 8 from telemetry.core import util |
9 from telemetry.page import page_set | 9 from telemetry.page import page_set |
10 from telemetry.page import page_test | 10 from telemetry.page import page_test |
11 from telemetry.value import list_of_scalar_values | 11 from telemetry.value import list_of_scalar_values |
12 | 12 |
13 | 13 |
14 def _CreatePageSetFromPath(path): | 14 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), |
| 15 'third_party', 'WebKit', 'PerformanceTests') |
| 16 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') |
| 17 |
| 18 |
| 19 def _CreatePageSetFromPath(path, skipped_file): |
15 assert os.path.exists(path) | 20 assert os.path.exists(path) |
16 | 21 |
17 page_urls = [] | 22 page_urls = [] |
18 serving_dirs = set() | 23 serving_dirs = set() |
19 | 24 |
20 def _AddPage(path): | 25 def _AddPage(path): |
21 if not path.endswith('.html'): | 26 if not path.endswith('.html'): |
22 return | 27 return |
23 if '../' in open(path, 'r').read(): | 28 if '../' in open(path, 'r').read(): |
24 # If the page looks like it references its parent dir, include it. | 29 # If the page looks like it references its parent dir, include it. |
25 serving_dirs.add(os.path.dirname(os.path.dirname(path))) | 30 serving_dirs.add(os.path.dirname(os.path.dirname(path))) |
26 page_urls.append('file://' + path.replace('\\', '/')) | 31 page_urls.append('file://' + path.replace('\\', '/')) |
27 | 32 |
28 def _AddDir(dir_path, skipped): | 33 def _AddDir(dir_path, skipped): |
29 for candidate_path in os.listdir(dir_path): | 34 for candidate_path in os.listdir(dir_path): |
30 if candidate_path == 'resources': | 35 if candidate_path == 'resources': |
31 continue | 36 continue |
32 candidate_path = os.path.join(dir_path, candidate_path) | 37 candidate_path = os.path.join(dir_path, candidate_path) |
33 if candidate_path.startswith(tuple([os.path.join(path, s) | 38 if candidate_path.startswith(tuple([os.path.join(path, s) |
34 for s in skipped])): | 39 for s in skipped])): |
35 continue | 40 continue |
36 if os.path.isdir(candidate_path): | 41 if os.path.isdir(candidate_path): |
37 _AddDir(candidate_path, skipped) | 42 _AddDir(candidate_path, skipped) |
38 else: | 43 else: |
39 _AddPage(candidate_path) | 44 _AddPage(candidate_path) |
40 | 45 |
41 if os.path.isdir(path): | 46 if os.path.isdir(path): |
42 skipped = [] | 47 skipped = [] |
43 skipped_file = os.path.join(path, 'Skipped') | |
44 if os.path.exists(skipped_file): | 48 if os.path.exists(skipped_file): |
45 for line in open(skipped_file, 'r').readlines(): | 49 for line in open(skipped_file, 'r').readlines(): |
46 line = line.strip() | 50 line = line.strip() |
47 if line and not line.startswith('#'): | 51 if line and not line.startswith('#'): |
48 skipped.append(line.replace('/', os.sep)) | 52 skipped.append(line.replace('/', os.sep)) |
49 _AddDir(path, skipped) | 53 _AddDir(path, skipped) |
50 else: | 54 else: |
51 _AddPage(path) | 55 _AddPage(path) |
52 ps = page_set.PageSet(file_path=os.getcwd()+os.sep, serving_dirs=serving_dirs) | 56 ps = page_set.PageSet(file_path=os.getcwd()+os.sep, serving_dirs=serving_dirs) |
53 for url in page_urls: | 57 for url in page_urls: |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 units = parts[-1] | 90 units = parts[-1] |
87 metric = page.display_name.split('.')[0].replace('/', '_') | 91 metric = page.display_name.split('.')[0].replace('/', '_') |
88 results.AddValue(list_of_scalar_values.ListOfScalarValues( | 92 results.AddValue(list_of_scalar_values.ListOfScalarValues( |
89 results.current_page, metric, units, values)) | 93 results.current_page, metric, units, values)) |
90 | 94 |
91 break | 95 break |
92 | 96 |
93 print log | 97 print log |
94 | 98 |
95 | 99 |
| 100 # TODO(dtu): Remove this benchmark once desktop chromium.perf bots are on |
| 101 # recipes and running the split-up blink_perf benchmark. |
| 102 @benchmark.Disabled('android') |
96 class BlinkPerfAll(benchmark.Benchmark): | 103 class BlinkPerfAll(benchmark.Benchmark): |
97 tag = 'all' | 104 tag = 'all' |
98 test = _BlinkPerfMeasurement | 105 test = _BlinkPerfMeasurement |
99 | 106 |
100 def CreatePageSet(self, options): | 107 def CreatePageSet(self, options): |
101 path = os.path.join(util.GetChromiumSrcDir(), | 108 return _CreatePageSetFromPath(BLINK_PERF_BASE_DIR, SKIPPED_FILE) |
102 'third_party', 'WebKit', 'PerformanceTests') | |
103 return _CreatePageSetFromPath(path) | |
104 | 109 |
105 | 110 |
106 @benchmark.Disabled | 111 @benchmark.Enabled('android') |
107 class BlinkPerfAnimation(benchmark.Benchmark): | 112 class BlinkPerfAnimation(benchmark.Benchmark): |
108 tag = 'animation' | 113 tag = 'animation' |
109 test = _BlinkPerfMeasurement | 114 test = _BlinkPerfMeasurement |
110 | 115 |
111 def CreatePageSet(self, options): | 116 def CreatePageSet(self, options): |
112 path = os.path.join(util.GetChromiumSrcDir(), | 117 path = os.path.join(BLINK_PERF_BASE_DIR, 'Animation') |
113 'third_party', 'WebKit', 'PerformanceTests', 'Animation') | 118 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
114 return _CreatePageSetFromPath(path) | 119 |
| 120 |
| 121 @benchmark.Enabled('android') |
| 122 class BlinkPerfBindings(benchmark.Benchmark): |
| 123 tag = 'bindings' |
| 124 test = _BlinkPerfMeasurement |
| 125 |
| 126 def CreatePageSet(self, options): |
| 127 path = os.path.join(BLINK_PERF_BASE_DIR, 'Bindings') |
| 128 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 129 |
| 130 |
| 131 @benchmark.Enabled('android') |
| 132 class BlinkPerfCSS(benchmark.Benchmark): |
| 133 tag = 'css' |
| 134 test = _BlinkPerfMeasurement |
| 135 |
| 136 def CreatePageSet(self, options): |
| 137 path = os.path.join(BLINK_PERF_BASE_DIR, 'CSS') |
| 138 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 139 |
| 140 |
| 141 @benchmark.Enabled('android') |
| 142 class BlinkPerfCanvas(benchmark.Benchmark): |
| 143 tag = 'canvas' |
| 144 test = _BlinkPerfMeasurement |
| 145 |
| 146 def CreatePageSet(self, options): |
| 147 path = os.path.join(BLINK_PERF_BASE_DIR, 'Canvas') |
| 148 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 149 |
| 150 |
| 151 @benchmark.Enabled('android') |
| 152 class BlinkPerfDOM(benchmark.Benchmark): |
| 153 tag = 'dom' |
| 154 test = _BlinkPerfMeasurement |
| 155 |
| 156 def CreatePageSet(self, options): |
| 157 path = os.path.join(BLINK_PERF_BASE_DIR, 'DOM') |
| 158 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 159 |
| 160 |
| 161 @benchmark.Enabled('android') |
| 162 class BlinkPerfEvents(benchmark.Benchmark): |
| 163 tag = 'events' |
| 164 test = _BlinkPerfMeasurement |
| 165 |
| 166 def CreatePageSet(self, options): |
| 167 path = os.path.join(BLINK_PERF_BASE_DIR, 'Events') |
| 168 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 169 |
| 170 |
| 171 @benchmark.Enabled('android') |
| 172 class BlinkPerfInteractive(benchmark.Benchmark): |
| 173 tag = 'interactive' |
| 174 test = _BlinkPerfMeasurement |
| 175 |
| 176 def CreatePageSet(self, options): |
| 177 path = os.path.join(BLINK_PERF_BASE_DIR, 'Interactive') |
| 178 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 179 |
| 180 |
| 181 @benchmark.Enabled('android') |
| 182 class BlinkPerfLayout(benchmark.Benchmark): |
| 183 tag = 'layout' |
| 184 test = _BlinkPerfMeasurement |
| 185 |
| 186 def CreatePageSet(self, options): |
| 187 path = os.path.join(BLINK_PERF_BASE_DIR, 'Layout') |
| 188 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 189 |
| 190 |
| 191 @benchmark.Enabled('android') |
| 192 class BlinkPerfMutation(benchmark.Benchmark): |
| 193 tag = 'mutation' |
| 194 test = _BlinkPerfMeasurement |
| 195 |
| 196 def CreatePageSet(self, options): |
| 197 path = os.path.join(BLINK_PERF_BASE_DIR, 'Mutation') |
| 198 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 199 |
| 200 |
| 201 @benchmark.Enabled('android') |
| 202 class BlinkPerfParser(benchmark.Benchmark): |
| 203 tag = 'parser' |
| 204 test = _BlinkPerfMeasurement |
| 205 |
| 206 def CreatePageSet(self, options): |
| 207 path = os.path.join(BLINK_PERF_BASE_DIR, 'Parser') |
| 208 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 209 |
| 210 |
| 211 @benchmark.Enabled('android') |
| 212 class BlinkPerfSVG(benchmark.Benchmark): |
| 213 tag = 'svg' |
| 214 test = _BlinkPerfMeasurement |
| 215 |
| 216 def CreatePageSet(self, options): |
| 217 path = os.path.join(BLINK_PERF_BASE_DIR, 'SVG') |
| 218 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 219 |
| 220 |
| 221 @benchmark.Enabled('android') |
| 222 class BlinkPerfShadowDOM(benchmark.Benchmark): |
| 223 tag = 'shadow_dom' |
| 224 test = _BlinkPerfMeasurement |
| 225 |
| 226 def CreatePageSet(self, options): |
| 227 path = os.path.join(BLINK_PERF_BASE_DIR, 'ShadowDOM') |
| 228 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 229 |
| 230 |
| 231 @benchmark.Enabled('android') |
| 232 class BlinkPerfXMLHttpRequest(benchmark.Benchmark): |
| 233 tag = 'xml_http_request' |
| 234 test = _BlinkPerfMeasurement |
| 235 |
| 236 def CreatePageSet(self, options): |
| 237 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') |
| 238 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
OLD | NEW |