Chromium Code Reviews| Index: tools/telemetry/telemetry/core/browser_options.py |
| diff --git a/tools/telemetry/telemetry/core/browser_options.py b/tools/telemetry/telemetry/core/browser_options.py |
| index f27f93499ca313a7c5da46c687db82af71ce5d06..cdef0942e43c9152f17ad5fe974670e1d5cfe667 100644 |
| --- a/tools/telemetry/telemetry/core/browser_options.py |
| +++ b/tools/telemetry/telemetry/core/browser_options.py |
| @@ -1,11 +1,12 @@ |
| # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| +import copy |
| +import logging |
| import optparse |
| -import sys |
| +import re |
| import shlex |
| -import logging |
| -import copy |
| +import sys |
| from telemetry.core import browser_finder |
| from telemetry.core import profile_types |
| @@ -49,6 +50,11 @@ class BrowserOptions(optparse.Values): |
| self.no_proxy_server = False |
| + self.page_repeat_secs = 0 |
| + self.pageset_repeat_secs = 0 |
| + self.page_repeat_iters = 1 |
| + self.pageset_repeat_iters = 1 |
|
dtu
2013/07/11 17:28:38
I'd prefer if they were all None
edmundyan
2013/07/11 18:55:01
Done, but I can't think of a clean way for _iters.
|
| + |
| def Copy(self): |
| return copy.deepcopy(self) |
| @@ -113,12 +119,17 @@ class BrowserOptions(optparse.Values): |
| # Page set options |
| group = optparse.OptionGroup(parser, 'Page set options') |
| - group.add_option('--page-repeat', dest='page_repeat', default=1, |
| - help='Number of times to repeat each individual ' + |
| - 'page in the pageset before proceeding.') |
| - group.add_option('--pageset-repeat', dest='pageset_repeat', default=1, |
| - help='Number of times to repeat the entire pageset ' + |
| - 'before finishing.') |
| + group.add_option('--page-repeat', dest='page_repeat', default='1', |
| + help='Number of iterations or length of time to repeat each ' |
| + 'individual page in the pageset before proceeding. Append ' |
| + 'an \'s\' to specify length of time in seconds. e.g., \'10\' ' |
| + 'to repeat for 10 iterations, or \'30s\' to repeat for 30 ' |
| + 'seconds.') |
| + group.add_option('--pageset-repeat', dest='pageset_repeat', default='1', |
| + help='Number of iterations or length of time to repeat the entire ' |
| + 'pageset before finishing. Append an \'s\' to specify length ' |
| + 'of time in seconds. e.g., \'10\' to repeat for 10 iterations, ' |
| + 'or \'30s\' to repeat for 30 seconds.') |
| group.add_option('--pageset-shuffle', action='store_true', |
| dest='pageset_shuffle', |
| help='Shuffle the order of pages within a pageset.') |
| @@ -215,6 +226,41 @@ class BrowserOptions(optparse.Values): |
| delattr(self, 'extra_wpr_args_as_string') |
| if self.profile_type == 'default': |
| self.dont_override_profile = True |
| + |
| + pattern = re.compile('([0-9]+)([sS]?)$') |
| + |
| + # page_repeat |
| + match = pattern.match(self.page_repeat) |
| + if match: |
| + if match.group(1): |
|
dtu
2013/07/11 17:28:38
match.group(2)
edmundyan
2013/07/11 18:55:01
Done.
|
| + self.page_repeat_secs = float(match.group(1)) |
| + else: |
| + self.page_repeat_iters = int(match.group(1)) |
| + delattr(self, "page_repeat") |
|
dtu
2013/07/11 17:28:38
Single quotes.
edmundyan
2013/07/11 18:55:01
Done.
|
| + else: |
| + sys.stderr.write('Usage: --page-repeat only accepts an int ' + |
|
dtu
2013/07/11 17:28:38
No +
edmundyan
2013/07/11 18:55:01
Done.
|
| + 'followed by only an \'s\' if using time. ' + |
| + 'e.g. \'10\' or \'10s\'\n') |
| + sys.exit(1) |
| + |
| + # pageset_repeat |
| + match = pattern.match(self.pageset_repeat) |
| + if match: |
| + if match.group(1): |
| + self.pageset_repeat_secs = float(match.group(1)) |
| + else: |
| + self.pageset_repeat_iters = int(match.group(1)) |
| + delattr(self, "pageset_repeat") |
| + else: |
| + sys.stderr.write('Usage: --pageset-repeat only accepts an int ' + |
| + 'followed by only an \'s\' if using time. ' + |
| + 'e.g. \'10\' or \'10s\'\n') |
| + sys.exit(1) |
| + if ((self.page_repeat_iters != 1 or self.pageset_repeat_iters != 1 ) and |
| + (self.page_repeat_secs or self.pageset_repeat_secs)): |
| + sys.stderr.write('Cannot interchange repeat options. Use only ' + |
| + 'iterations or time.\n') |
| + sys.exit(1) |
| self.profile_dir = profile_types.GetProfileDir(self.profile_type) |
| return ret |
| parser.parse_args = ParseArgs |