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

Side by Side Diff: tools/telemetry/telemetry/core/util.py

Issue 606683005: Telemetry: featurize tab_switching test for compressed swap performance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix "wait for histogram change" condition Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 # Copyright 2012 The Chromium Authors. All rights reserved. 1 # Copyright 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 import glob 4 import glob
5 import imp 5 import imp
6 import inspect 6 import inspect
7 import logging 7 import logging
8 import os 8 import os
9 import socket 9 import socket
10 import sys 10 import sys
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 _counter = [0] 44 _counter = [0]
45 def _GetUniqueModuleName(): 45 def _GetUniqueModuleName():
46 _counter[0] += 1 46 _counter[0] += 1
47 return "page_set_module_" + str(_counter[0]) 47 return "page_set_module_" + str(_counter[0])
48 48
49 def GetPythonPageSetModule(file_path): 49 def GetPythonPageSetModule(file_path):
50 return imp.load_source(_GetUniqueModuleName(), file_path) 50 return imp.load_source(_GetUniqueModuleName(), file_path)
51 51
52 52
53 def WaitFor(condition, timeout): 53 def WaitFor(condition, timeout, fixed_poll_interval=None):
54 """Waits for up to |timeout| secs for the function |condition| to return True. 54 """Waits for up to |timeout| secs for the function |condition| to return True.
55 55
56 Polling frequency is (elapsed_time / 10), with a min of .1s and max of 5s. 56 Polling interval is (elapsed_time / 10), with a min of .1s and max of 5s,
57 unless |fixed_poll_interval| is specified.
57 58
58 Returns: 59 Returns:
59 Result of |condition| function (if present). 60 Result of |condition| function (if present).
60 """ 61 """
61 min_poll_interval = 0.1 62 min_poll_interval = 0.1
62 max_poll_interval = 5 63 max_poll_interval = 5
63 output_interval = 300 64 output_interval = 300
64 65
65 def GetConditionString(): 66 def GetConditionString():
66 if condition.__name__ == '<lambda>': 67 if condition.__name__ == '<lambda>':
(...skipping 12 matching lines...) Expand all
79 now = time.time() 80 now = time.time()
80 elapsed_time = now - start_time 81 elapsed_time = now - start_time
81 last_output_elapsed_time = now - last_output_time 82 last_output_elapsed_time = now - last_output_time
82 if elapsed_time > timeout: 83 if elapsed_time > timeout:
83 raise TimeoutException('Timed out while waiting %ds for %s.' % 84 raise TimeoutException('Timed out while waiting %ds for %s.' %
84 (timeout, GetConditionString())) 85 (timeout, GetConditionString()))
85 if last_output_elapsed_time > output_interval: 86 if last_output_elapsed_time > output_interval:
86 logging.info('Continuing to wait %ds for %s. Elapsed: %ds.', 87 logging.info('Continuing to wait %ds for %s. Elapsed: %ds.',
87 timeout, GetConditionString(), elapsed_time) 88 timeout, GetConditionString(), elapsed_time)
88 last_output_time = time.time() 89 last_output_time = time.time()
89 poll_interval = min(max(elapsed_time / 10., min_poll_interval), 90 poll_interval = fixed_poll_interval or \
91 min(max(elapsed_time / 10., min_poll_interval),
90 max_poll_interval) 92 max_poll_interval)
91 time.sleep(poll_interval) 93 time.sleep(poll_interval)
92 94
93 95
94 def GetUnreservedAvailableLocalPort(): 96 def GetUnreservedAvailableLocalPort():
95 """Returns an available port on the system. 97 """Returns an available port on the system.
96 98
97 WARNING: This method does not reserve the port it returns, so it may be used 99 WARNING: This method does not reserve the port it returns, so it may be used
98 by something else before you get to use it. This can lead to flake. 100 by something else before you get to use it. This can lead to flake.
99 """ 101 """
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 """ 137 """
136 name, ext = os.path.splitext(base_name) 138 name, ext = os.path.splitext(base_name)
137 assert ext == '', 'base_name cannot contain file extension.' 139 assert ext == '', 'base_name cannot contain file extension.'
138 index = 0 140 index = 0
139 while True: 141 while True:
140 output_name = '%s_%03d' % (name, index) 142 output_name = '%s_%03d' % (name, index)
141 if not glob.glob(output_name + '.*'): 143 if not glob.glob(output_name + '.*'):
142 break 144 break
143 index = index + 1 145 index = index + 1
144 return output_name 146 return output_name
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698