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..aa32d0d5cdc5994207b42f52b74f5eb8fa30407d 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. |
+ # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
dennis_jeffrey
2013/07/12 21:36:18
remove the spaces before the #
edmundyan
2013/07/12 22:10:21
Done.
|
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
+import copy |
dennis_jeffrey
2013/07/12 21:36:18
add a blank line before this
edmundyan
2013/07/12 22:10:21
Done.
|
+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 = None |
+ self.pageset_repeat_secs = None |
+ self.page_repeat_iters = None |
+ self.pageset_repeat_iters = None |
+ |
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,40 @@ 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(2): |
+ self.page_repeat_secs = float(match.group(1)) |
+ # set _iters to default to avoid interchange options error |
dennis_jeffrey
2013/07/12 21:36:18
nit: Comments should generally be grammatically-co
edmundyan
2013/07/12 22:10:21
Done. Was also an outdated comment so I fixed tha
|
+ self.page_repeat_iters = 1 |
+ else: |
+ self.page_repeat_iters = int(match.group(1)) |
+ delattr(self, 'page_repeat') |
+ else: |
+ sys.stderr.write('Usage: --page-repeat only accepts an int ' |
+ '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(2): |
+ self.pageset_repeat_secs = float(match.group(1)) |
+ # set _iters to default to avoid interchange options error |
+ self.pageset_repeat_iters = 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) |
self.profile_dir = profile_types.GetProfileDir(self.profile_type) |
return ret |
parser.parse_args = ParseArgs |