Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Unified Diff: tools/telemetry/telemetry/core/browser_options.py

Issue 18261009: Have repeats understand "time" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes from dennisjeffrey Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698