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 | |
12 from telemetry.core import util | 11 from telemetry.core import util |
13 from telemetry.internal.browser import browser_options | 12 from telemetry.internal.browser import browser_options |
14 from telemetry.internal.results import results_options | 13 from telemetry.internal.results import results_options |
15 from telemetry.internal import story_runner | 14 from telemetry.internal import story_runner |
16 from telemetry.internal.util import command_line | 15 from telemetry.internal.util import command_line |
17 from telemetry.page import page_test | 16 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 discover.DiscoverClasses(base_dir, base_dir, cls, | 74 return classes_util.DiscoverClassesByClassName(base_dir, base_dir, cls) |
75 index_by_class_name=True) | |
76 | 75 |
77 | 76 |
78 def _MaybeGetInstanceOfClass(target, base_dir, cls): | 77 def _MaybeGetInstanceOfClass(target, base_dir, cls): |
79 if isinstance(target, cls): | 78 if isinstance(target, cls): |
80 return target | 79 return target |
81 classes = _GetSubclasses(base_dir, cls) | 80 return classes_util.MaybeGetInstanceOfClass(target, base_dir, base_dir, cls) |
82 return classes[target]() if target in classes else None | |
83 | 81 |
84 | 82 |
85 def _PrintAllImpl(all_items, item_name, output_stream): | 83 def _PrintAllImpl(all_items, item_name, output_stream): |
86 output_stream.write('Available %s\' names with descriptions:\n' % item_name) | 84 output_stream.write('Available %s\' names with descriptions:\n' % item_name) |
87 keys = sorted(all_items.keys()) | 85 keys = sorted(all_items.keys()) |
88 key_description = [(k, all_items[k].Description()) for k in keys] | 86 key_description = [(k, all_items[k].Description()) for k in keys] |
89 _PrintPairs(key_description, output_stream) | 87 _PrintPairs(key_description, output_stream) |
90 output_stream.write('\n') | 88 output_stream.write('\n') |
91 | 89 |
92 | 90 |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 return 0 | 262 return 0 |
265 | 263 |
266 # TODO(nednguyen): update WprRecorder so that it handles the difference | 264 # TODO(nednguyen): update WprRecorder so that it handles the difference |
267 # between recording a benchmark vs recording a story better based on | 265 # between recording a benchmark vs recording a story better based on |
268 # the distinction between args.benchmark & args.story | 266 # the distinction between args.benchmark & args.story |
269 wpr_recorder = WprRecorder(base_dir, target, extra_args) | 267 wpr_recorder = WprRecorder(base_dir, target, extra_args) |
270 results = wpr_recorder.CreateResults() | 268 results = wpr_recorder.CreateResults() |
271 wpr_recorder.Record(results) | 269 wpr_recorder.Record(results) |
272 wpr_recorder.HandleResults(results, args.upload) | 270 wpr_recorder.HandleResults(results, args.upload) |
273 return min(255, len(results.failures)) | 271 return min(255, len(results.failures)) |
OLD | NEW |