| 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
|
|
|