OLD | NEW |
1 # Copyright 2012 The Chromium Authors. All rights reserved. | 1 # Copyright 2012 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 argparse | 5 import argparse |
6 import logging | 6 import logging |
7 import sys | 7 import sys |
8 | 8 |
9 from telemetry import benchmark | 9 from telemetry import benchmark |
10 from telemetry import story | 10 from telemetry import story |
| 11 from telemetry.core import discover |
11 from telemetry.core import util | 12 from telemetry.core import util |
12 from telemetry.internal.browser import browser_options | 13 from telemetry.internal.browser import browser_options |
13 from telemetry.internal.results import results_options | 14 from telemetry.internal.results import results_options |
14 from telemetry.internal import story_runner | 15 from telemetry.internal import story_runner |
15 from telemetry.internal.util import command_line | 16 from telemetry.internal.util import command_line |
16 from telemetry.page import page_test | 17 from telemetry.page import page_test |
17 from telemetry.util import classes_util | |
18 from telemetry.util import wpr_modes | 18 from telemetry.util import wpr_modes |
19 | 19 |
20 | 20 |
21 class RecorderPageTest(page_test.PageTest): | 21 class RecorderPageTest(page_test.PageTest): |
22 def __init__(self): | 22 def __init__(self): |
23 super(RecorderPageTest, self).__init__() | 23 super(RecorderPageTest, self).__init__() |
24 self.page_test = None | 24 self.page_test = None |
25 | 25 |
26 def CustomizeBrowserOptions(self, options): | 26 def CustomizeBrowserOptions(self, options): |
27 if self.page_test: | 27 if self.page_test: |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 | 64 |
65 def _GetSubclasses(base_dir, cls): | 65 def _GetSubclasses(base_dir, cls): |
66 """Returns all subclasses of |cls| in |base_dir|. | 66 """Returns all subclasses of |cls| in |base_dir|. |
67 | 67 |
68 Args: | 68 Args: |
69 cls: a class | 69 cls: a class |
70 | 70 |
71 Returns: | 71 Returns: |
72 dict of {underscored_class_name: benchmark class} | 72 dict of {underscored_class_name: benchmark class} |
73 """ | 73 """ |
74 return classes_util.DiscoverClassesByClassName(base_dir, base_dir, cls) | 74 return discover.DiscoverClasses(base_dir, base_dir, cls, |
| 75 index_by_class_name=True) |
75 | 76 |
76 | 77 |
77 def _MaybeGetInstanceOfClass(target, base_dir, cls): | 78 def _MaybeGetInstanceOfClass(target, base_dir, cls): |
78 if isinstance(target, cls): | 79 if isinstance(target, cls): |
79 return target | 80 return target |
80 return classes_util.MaybeGetInstanceOfClass(target, base_dir, base_dir, cls) | 81 classes = _GetSubclasses(base_dir, cls) |
| 82 return classes[target]() if target in classes else None |
81 | 83 |
82 | 84 |
83 def _PrintAllImpl(all_items, item_name, output_stream): | 85 def _PrintAllImpl(all_items, item_name, output_stream): |
84 output_stream.write('Available %s\' names with descriptions:\n' % item_name) | 86 output_stream.write('Available %s\' names with descriptions:\n' % item_name) |
85 keys = sorted(all_items.keys()) | 87 keys = sorted(all_items.keys()) |
86 key_description = [(k, all_items[k].Description()) for k in keys] | 88 key_description = [(k, all_items[k].Description()) for k in keys] |
87 _PrintPairs(key_description, output_stream) | 89 _PrintPairs(key_description, output_stream) |
88 output_stream.write('\n') | 90 output_stream.write('\n') |
89 | 91 |
90 | 92 |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 return 0 | 264 return 0 |
263 | 265 |
264 # TODO(nednguyen): update WprRecorder so that it handles the difference | 266 # TODO(nednguyen): update WprRecorder so that it handles the difference |
265 # between recording a benchmark vs recording a story better based on | 267 # between recording a benchmark vs recording a story better based on |
266 # the distinction between args.benchmark & args.story | 268 # the distinction between args.benchmark & args.story |
267 wpr_recorder = WprRecorder(base_dir, target, extra_args) | 269 wpr_recorder = WprRecorder(base_dir, target, extra_args) |
268 results = wpr_recorder.CreateResults() | 270 results = wpr_recorder.CreateResults() |
269 wpr_recorder.Record(results) | 271 wpr_recorder.Record(results) |
270 wpr_recorder.HandleResults(results, args.upload) | 272 wpr_recorder.HandleResults(results, args.upload) |
271 return min(255, len(results.failures)) | 273 return min(255, len(results.failures)) |
OLD | NEW |