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

Unified Diff: tools/android/loading/run_sandwich.py

Issue 1701973002: sandwich: Implements reload cache operation to compare with push. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@d06
Patch Set: Addresses matt's nit Created 4 years, 10 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/android/loading/run_sandwich.py
diff --git a/tools/android/loading/run_sandwich.py b/tools/android/loading/run_sandwich.py
index a99a5a395c08166dc4c940d427b7ba42ed4a2c78..ef7fca8b2391036f73a2abc4c11b678ab8c38582 100755
--- a/tools/android/loading/run_sandwich.py
+++ b/tools/android/loading/run_sandwich.py
@@ -86,15 +86,13 @@ def _ReadUrlsFromJobDescription(job_name):
raise Exception('Job description does not define a list named "urls"')
-def _SaveChromeTrace(events, directory, subdirectory):
+def _SaveChromeTrace(events, target_directory):
"""Saves the trace events, ignores IO errors.
Args:
events: a dict as returned by TracingTrack.ToJsonDict()
- directory: directory name contining all traces
- subdirectory: directory name to create this particular trace in
+ target_directory: Directory path where trace is created.
"""
- target_directory = os.path.join(directory, subdirectory)
filename = os.path.join(target_directory, 'trace.json')
try:
os.makedirs(target_directory)
@@ -288,7 +286,7 @@ def main():
parser.add_argument('--repeat', default=1, type=int,
help='How many times to run the job')
parser.add_argument('--cache-op',
- choices=['clear', 'save', 'push'],
+ choices=['clear', 'save', 'push', 'reload'],
default='clear',
help='Configures cache operation to do before launching '
+'Chrome. (Default is clear).')
@@ -329,26 +327,37 @@ def main():
with device_setup.WprHost(device, args.wpr_archive, args.wpr_record,
args.disable_wpr_script_injection) as additional_flags:
+ def _RunNavigation(url, clear_cache, trace_id):
+ with device_setup.DeviceConnection(
+ device=device,
+ additional_flags=additional_flags) as connection:
+ if clear_cache:
+ connection.ClearCache()
+ page_track.PageTrack(connection)
+ tracing_track = tracing.TracingTrack(connection,
+ categories=pull_sandwich_metrics.CATEGORIES)
+ connection.SetUpMonitoring()
+ connection.SendAndIgnoreResponse('Page.navigate', {'url': url})
+ connection.StartMonitoring()
+ if trace_id != None:
+ trace_target_directory = os.path.join(args.output, str(trace_id))
+ _SaveChromeTrace(tracing_track.ToJsonDict(), trace_target_directory)
+
for _ in xrange(args.repeat):
for url in job_urls:
- if args.cache_op == 'push':
+ clear_cache = False
+ if args.cache_op == 'clear':
+ clear_cache = True
+ elif args.cache_op == 'push':
device.KillAll(_CHROME_PACKAGE, quiet=True)
_PushBrowserCache(device, local_cache_directory_path)
- with device_setup.DeviceConnection(
- device=device,
- additional_flags=additional_flags) as connection:
- if (not run_infos['urls'] and args.cache_op == 'save' or
- args.cache_op == 'clear'):
- connection.ClearCache()
- page_track.PageTrack(connection)
- tracing_track = tracing.TracingTrack(connection,
- categories=pull_sandwich_metrics.CATEGORIES)
- connection.SetUpMonitoring()
- connection.SendAndIgnoreResponse('Page.navigate', {'url': url})
- connection.StartMonitoring()
- _SaveChromeTrace(tracing_track.ToJsonDict(), args.output,
- str(len(run_infos['urls'])))
- run_infos['urls'].append(url)
+ elif args.cache_op == 'reload':
+ _RunNavigation(url, clear_cache=True, trace_id=None)
+ elif args.cache_op == 'save':
+ clear_cache = not run_infos['urls']
+ _RunNavigation(url, clear_cache=clear_cache,
+ trace_id=len(run_infos['urls']))
+ run_infos['urls'].append(url)
if local_cache_directory_path:
shutil.rmtree(local_cache_directory_path)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698