| 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 os | 5 import os |
| 6 | 6 |
| 7 from telemetry import test | 7 from telemetry import test |
| 8 from telemetry.core import util | 8 from telemetry.core import util |
| 9 from telemetry.page import page_measurement |
| 9 from telemetry.page import page_set | 10 from telemetry.page import page_set |
| 10 | 11 |
| 11 from measurements import dromaeo | 12 |
| 13 class _DromaeoMeasurement(page_measurement.PageMeasurement): |
| 14 def MeasurePage(self, page, tab, results): |
| 15 tab.WaitForJavaScriptExpression( |
| 16 'window.document.cookie.indexOf("__done=1") >= 0', 600) |
| 17 |
| 18 js_get_results = 'JSON.stringify(window.automation.GetResults())' |
| 19 print js_get_results |
| 20 score = eval(tab.EvaluateJavaScript(js_get_results)) |
| 21 |
| 22 def Escape(k): |
| 23 chars = [' ', '-', '/', '(', ')', '*'] |
| 24 for c in chars: |
| 25 k = k.replace(c, '_') |
| 26 return k |
| 27 |
| 28 suffix = page.url[page.url.index('?') + 1 : page.url.index('&')] |
| 29 for k, v in score.iteritems(): |
| 30 data_type = 'unimportant' |
| 31 if k == suffix: |
| 32 data_type = 'default' |
| 33 results.Add(Escape(k), 'runs/s', v, data_type=data_type) |
| 12 | 34 |
| 13 | 35 |
| 14 class DromaeoBenchmark(test.Test): | 36 class _DromaeoBenchmark(test.Test): |
| 15 """A base class for Dromaeo benchmarks.""" | 37 """A base class for Dromaeo benchmarks.""" |
| 16 test = dromaeo.Dromaeo | 38 test = _DromaeoMeasurement |
| 17 | 39 |
| 18 def CreatePageSet(self, options): | 40 def CreatePageSet(self, options): |
| 19 """Makes a PageSet for Dromaeo benchmarks.""" | 41 """Makes a PageSet for Dromaeo benchmarks.""" |
| 20 # Subclasses are expected to define a class member called query_param. | 42 # Subclasses are expected to define a class member called query_param. |
| 21 if not hasattr(self, 'query_param'): | 43 if not hasattr(self, 'query_param'): |
| 22 raise NotImplementedError('query_param not in Dromaeo benchmark.') | 44 raise NotImplementedError('query_param not in Dromaeo benchmark.') |
| 23 url = 'file://index.html?%s&automated' % self.query_param | 45 url = 'file://index.html?%s&automated' % self.query_param |
| 24 # The docstring of benchmark classes may also be used as a description | 46 # The docstring of benchmark classes may also be used as a description |
| 25 # when 'run_benchmarks list' is run. | 47 # when 'run_benchmarks list' is run. |
| 26 description = self.__doc__ or 'Dromaeo JavaScript Benchmark' | 48 description = self.__doc__ or 'Dromaeo JavaScript Benchmark' |
| 27 page_set_dict = { | 49 page_set_dict = { |
| 28 'description': description, | 50 'description': description, |
| 29 'pages': [{'url': url}], | 51 'pages': [{'url': url}], |
| 30 } | 52 } |
| 31 dromaeo_dir = os.path.join(util.GetChromiumSrcDir(), | 53 dromaeo_dir = os.path.join(util.GetChromiumSrcDir(), |
| 32 'chrome', 'test', 'data', 'dromaeo') | 54 'chrome', 'test', 'data', 'dromaeo') |
| 33 return page_set.PageSet.FromDict(page_set_dict, dromaeo_dir) | 55 return page_set.PageSet.FromDict(page_set_dict, dromaeo_dir) |
| 34 | 56 |
| 35 | 57 |
| 36 class DromaeoDomCoreAttr(DromaeoBenchmark): | 58 class DromaeoDomCoreAttr(_DromaeoBenchmark): |
| 37 """Dromaeo DOMCore attr JavaScript benchmark.""" | 59 """Dromaeo DOMCore attr JavaScript benchmark.""" |
| 38 tag = 'domcoreattr' | 60 tag = 'domcoreattr' |
| 39 query_param = 'dom-attr' | 61 query_param = 'dom-attr' |
| 40 | 62 |
| 41 | 63 |
| 42 class DromaeoDomCoreModify(DromaeoBenchmark): | 64 class DromaeoDomCoreModify(_DromaeoBenchmark): |
| 43 """Dromaeo DOMCore modify JavaScript benchmark.""" | 65 """Dromaeo DOMCore modify JavaScript benchmark.""" |
| 44 tag = 'domcoremodify' | 66 tag = 'domcoremodify' |
| 45 query_param = 'dom-modify' | 67 query_param = 'dom-modify' |
| 46 | 68 |
| 47 | 69 |
| 48 class DromaeoDomCoreQuery(DromaeoBenchmark): | 70 class DromaeoDomCoreQuery(_DromaeoBenchmark): |
| 49 """Dromaeo DOMCore query JavaScript benchmark.""" | 71 """Dromaeo DOMCore query JavaScript benchmark.""" |
| 50 tag = 'domcorequery' | 72 tag = 'domcorequery' |
| 51 query_param = 'dom-query' | 73 query_param = 'dom-query' |
| 52 | 74 |
| 53 | 75 |
| 54 class DromaeoDomCoreTraverse(DromaeoBenchmark): | 76 class DromaeoDomCoreTraverse(_DromaeoBenchmark): |
| 55 """Dromaeo DOMCore traverse JavaScript benchmark.""" | 77 """Dromaeo DOMCore traverse JavaScript benchmark.""" |
| 56 tag = 'domcoretraverse' | 78 tag = 'domcoretraverse' |
| 57 query_param = 'dom-traverse' | 79 query_param = 'dom-traverse' |
| 58 | 80 |
| 59 | 81 |
| 60 class DromaeoJslibAttrJquery(DromaeoBenchmark): | 82 class DromaeoJslibAttrJquery(_DromaeoBenchmark): |
| 61 """Dromaeo JSLib attr jquery JavaScript benchmark""" | 83 """Dromaeo JSLib attr jquery JavaScript benchmark""" |
| 62 tag = 'jslibattrjquery' | 84 tag = 'jslibattrjquery' |
| 63 query_param = 'jslib-attr-jquery' | 85 query_param = 'jslib-attr-jquery' |
| 64 | 86 |
| 65 | 87 |
| 66 class DromaeoJslibAttrPrototype(DromaeoBenchmark): | 88 class DromaeoJslibAttrPrototype(_DromaeoBenchmark): |
| 67 """Dromaeo JSLib attr prototype JavaScript benchmark""" | 89 """Dromaeo JSLib attr prototype JavaScript benchmark""" |
| 68 tag = 'jslibattrprototype' | 90 tag = 'jslibattrprototype' |
| 69 query_param = 'jslib-attr-prototype' | 91 query_param = 'jslib-attr-prototype' |
| 70 | 92 |
| 71 | 93 |
| 72 class DromaeoJslibEventJquery(DromaeoBenchmark): | 94 class DromaeoJslibEventJquery(_DromaeoBenchmark): |
| 73 """Dromaeo JSLib event jquery JavaScript benchmark""" | 95 """Dromaeo JSLib event jquery JavaScript benchmark""" |
| 74 tag = 'jslibeventjquery' | 96 tag = 'jslibeventjquery' |
| 75 query_param = 'jslib-event-jquery' | 97 query_param = 'jslib-event-jquery' |
| 76 | 98 |
| 77 | 99 |
| 78 class DromaeoJslibEventPrototype(DromaeoBenchmark): | 100 class DromaeoJslibEventPrototype(_DromaeoBenchmark): |
| 79 """Dromaeo JSLib event prototype JavaScript benchmark""" | 101 """Dromaeo JSLib event prototype JavaScript benchmark""" |
| 80 tag = 'jslibeventprototype' | 102 tag = 'jslibeventprototype' |
| 81 query_param = 'jslib-event-prototype' | 103 query_param = 'jslib-event-prototype' |
| 82 | 104 |
| 83 | 105 |
| 84 class DromaeoJslibModifyJquery(DromaeoBenchmark): | 106 class DromaeoJslibModifyJquery(_DromaeoBenchmark): |
| 85 """Dromaeo JSLib modify jquery JavaScript benchmark""" | 107 """Dromaeo JSLib modify jquery JavaScript benchmark""" |
| 86 tag = 'jslibmodifyjquery' | 108 tag = 'jslibmodifyjquery' |
| 87 query_param = 'jslib-modify-jquery' | 109 query_param = 'jslib-modify-jquery' |
| 88 | 110 |
| 89 | 111 |
| 90 class DromaeoJslibModifyPrototype(DromaeoBenchmark): | 112 class DromaeoJslibModifyPrototype(_DromaeoBenchmark): |
| 91 """Dromaeo JSLib modify prototype JavaScript benchmark""" | 113 """Dromaeo JSLib modify prototype JavaScript benchmark""" |
| 92 tag = 'jslibmodifyprototype' | 114 tag = 'jslibmodifyprototype' |
| 93 query_param = 'jslib-modify-prototype' | 115 query_param = 'jslib-modify-prototype' |
| 94 | 116 |
| 95 | 117 |
| 96 class DromaeoJslibStyleJquery(DromaeoBenchmark): | 118 class DromaeoJslibStyleJquery(_DromaeoBenchmark): |
| 97 """Dromaeo JSLib style jquery JavaScript benchmark""" | 119 """Dromaeo JSLib style jquery JavaScript benchmark""" |
| 98 tag = 'jslibstylejquery' | 120 tag = 'jslibstylejquery' |
| 99 query_param = 'jslib-style-jquery' | 121 query_param = 'jslib-style-jquery' |
| 100 | 122 |
| 101 | 123 |
| 102 class DromaeoJslibStylePrototype(DromaeoBenchmark): | 124 class DromaeoJslibStylePrototype(_DromaeoBenchmark): |
| 103 """Dromaeo JSLib style prototype JavaScript benchmark""" | 125 """Dromaeo JSLib style prototype JavaScript benchmark""" |
| 104 tag = 'jslibstyleprototype' | 126 tag = 'jslibstyleprototype' |
| 105 query_param = 'jslib-style-prototype' | 127 query_param = 'jslib-style-prototype' |
| 106 | 128 |
| 107 | 129 |
| 108 class DromaeoJslibTraverseJquery(DromaeoBenchmark): | 130 class DromaeoJslibTraverseJquery(_DromaeoBenchmark): |
| 109 """Dromaeo JSLib traverse jquery JavaScript benchmark""" | 131 """Dromaeo JSLib traverse jquery JavaScript benchmark""" |
| 110 tag = 'jslibtraversejquery' | 132 tag = 'jslibtraversejquery' |
| 111 query_param = 'jslib-traverse-jquery' | 133 query_param = 'jslib-traverse-jquery' |
| 112 | 134 |
| 113 | 135 |
| 114 class DromaeoJslibTraversePrototype(DromaeoBenchmark): | 136 class DromaeoJslibTraversePrototype(_DromaeoBenchmark): |
| 115 """Dromaeo JSLib traverse prototype JavaScript benchmark""" | 137 """Dromaeo JSLib traverse prototype JavaScript benchmark""" |
| 116 tag = 'jslibtraverseprototype' | 138 tag = 'jslibtraverseprototype' |
| 117 query_param = 'jslib-traverse-prototype' | 139 query_param = 'jslib-traverse-prototype' |
| 118 | 140 |
| OLD | NEW |