| Index: tools/telemetry/telemetry/page/page_runner_repeat.py
|
| diff --git a/tools/telemetry/telemetry/page/page_runner_repeat.py b/tools/telemetry/telemetry/page/page_runner_repeat.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dc11c1d15db729633be96a6c83b00618f1f3fb05
|
| --- /dev/null
|
| +++ b/tools/telemetry/telemetry/page/page_runner_repeat.py
|
| @@ -0,0 +1,54 @@
|
| +# Copyright (c) 2013 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 time
|
| +
|
| +
|
| +class PageRunnerRepeatState(object):
|
| + def __init__(self, repeat_options):
|
| + self.pageset_start_time = None
|
| + self.pageset_iters = None
|
| + self.page_start_time = None
|
| + self.page_iters = None
|
| +
|
| + self.options = repeat_options
|
| +
|
| + def WillRunPage(self):
|
| + """Runs before we start repeating a page"""
|
| + self.page_start_time = time.time()
|
| + self.page_iters = 0
|
| +
|
| + def WillRunPageSet(self):
|
| + """Runs before we start repeating a pageset"""
|
| + self.pageset_start_time = time.time()
|
| + self.pageset_iters = 0
|
| +
|
| + def DidRunPage(self):
|
| + """Runs after each completion of a page iteration"""
|
| + self.page_iters += 1
|
| +
|
| + def DidRunPageSet(self):
|
| + """Runs after each completion of a pageset iteration"""
|
| + self.pageset_iters += 1
|
| +
|
| + def ShouldRepeatPageSet(self):
|
| + """Returns True if we need to repeat this pageset more times"""
|
| + if (self.options.pageset_repeat_secs and
|
| + time.time() - self.pageset_start_time >
|
| + self.options.pageset_repeat_secs):
|
| + return False
|
| + elif (not self.options.pageset_repeat_secs and
|
| + self.pageset_iters >= self.options.pageset_repeat_iters):
|
| + return False
|
| + return True
|
| +
|
| + def ShouldRepeatPage(self):
|
| + """Returns True if we need to repeat this page more times"""
|
| + if (self.options.page_repeat_secs and
|
| + time.time() - self.page_start_time > self.options.page_repeat_secs):
|
| + return False
|
| + elif (not self.options.page_repeat_secs and
|
| + self.page_iters >= self.options.page_repeat_iters):
|
| + return False
|
| + return True
|
|
|