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..91e2fddfafe39555c84c7efb41c632f04cef8caa 100644 |
--- a/tools/telemetry/telemetry/core/browser_options.py |
+++ b/tools/telemetry/telemetry/core/browser_options.py |
@@ -1,11 +1,13 @@ |
# 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 +51,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 +120,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 +227,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 the default value |
+ 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 the default value |
+ 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 |