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

Side by Side Diff: tools/android/loading/sandwich.py

Issue 2040993002: sandwich: Uplift for production use. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 #! /usr/bin/env python 1 #! /usr/bin/env python
2 # Copyright 2016 The Chromium Authors. All rights reserved. 2 # Copyright 2016 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Instructs Chrome to load series of web pages and reports results. 6 """Instructs Chrome to load series of web pages and reports results.
7 7
8 When running Chrome is sandwiched between preprocessed disk caches and 8 When running Chrome is sandwiched between preprocessed disk caches and
9 WepPageReplay serving all connections. 9 WepPageReplay serving all connections.
10 """ 10 """
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 source_dir=args.source_dir, communication_dir=out_path) as server: 155 source_dir=args.source_dir, communication_dir=out_path) as server:
156 address = server.Address() 156 address = server.Address()
157 runner.url = 'http://%s/%s' % (address, args.page) 157 runner.url = 'http://%s/%s' % (address, args.page)
158 runner.Run() 158 runner.Run()
159 trace_path = os.path.join( 159 trace_path = os.path.join(
160 out_path, 'run', '0', sandwich_runner.TRACE_FILENAME) 160 out_path, 'run', '0', sandwich_runner.TRACE_FILENAME)
161 shutil.copy(trace_path, args.output) 161 shutil.copy(trace_path, args.output)
162 return 0 162 return 0
163 163
164 164
165 def _GenerateBenchmarkTasks(args, url, output_subdirectory): 165 def _GenerateBenchmarkTasks(args, android_device, url, output_subdirectory):
166 MAIN_TRANSFORMER_LIST_NAME = 'no-network-emulation' 166 MAIN_TRANSFORMER_LIST_NAME = 'no-network-emulation'
167 common_builder = sandwich_utils.SandwichCommonBuilder( 167 common_builder = sandwich_utils.SandwichCommonBuilder(
168 android_device=_GetAndroidDeviceFromArgs(args), 168 android_device=android_device,
169 url=url, 169 url=url,
170 output_directory=args.output, 170 output_directory=args.output,
171 output_subdirectory=output_subdirectory) 171 output_subdirectory=output_subdirectory)
172 if args.wpr_archive_path: 172 if args.wpr_archive_path:
173 common_builder.OverridePathToWprArchive(args.wpr_archive_path) 173 common_builder.OverridePathToWprArchive(args.wpr_archive_path)
174 else: 174 else:
175 common_builder.PopulateWprRecordingTask() 175 common_builder.PopulateWprRecordingTask()
176 176
177 def MainTransformer(runner): 177 def MainTransformer(runner):
178 runner.record_video = _SPEED_INDEX_MEASUREMENT in args.optional_measures 178 runner.record_video = _SPEED_INDEX_MEASUREMENT in args.optional_measures
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 transformer_list = [MainTransformer, network_transformer] 212 transformer_list = [MainTransformer, network_transformer]
213 builder.PopulateBenchmark(enable_swr, transformer_list_name, 213 builder.PopulateBenchmark(enable_swr, transformer_list_name,
214 transformer_list) 214 transformer_list)
215 return common_builder.default_final_tasks 215 return common_builder.default_final_tasks
216 216
217 217
218 def _RunAllMain(args): 218 def _RunAllMain(args):
219 urls = ReadUrlsFromCorpus(args.corpus) 219 urls = ReadUrlsFromCorpus(args.corpus)
220 domain_times_encountered_per_domain = {} 220 domain_times_encountered_per_domain = {}
221 default_final_tasks = [] 221 default_final_tasks = []
222 android_device = _GetAndroidDeviceFromArgs(args)
222 for url in urls: 223 for url in urls:
223 domain = '.'.join(urlparse(url).netloc.split('.')[-2:]) 224 domain = '.'.join(urlparse(url).netloc.split('.')[-2:])
224 domain_times_encountered = domain_times_encountered_per_domain.get( 225 domain_times_encountered = domain_times_encountered_per_domain.get(
225 domain, 0) 226 domain, 0)
226 output_subdirectory = '{}.{}'.format(domain, domain_times_encountered) 227 output_subdirectory = '{}.{}'.format(domain, domain_times_encountered)
227 domain_times_encountered_per_domain[domain] = domain_times_encountered + 1 228 domain_times_encountered_per_domain[domain] = domain_times_encountered + 1
228 default_final_tasks.extend( 229 default_final_tasks.extend(
229 _GenerateBenchmarkTasks(args, url, output_subdirectory)) 230 _GenerateBenchmarkTasks(args, android_device, url, output_subdirectory))
230 return task_manager.ExecuteWithCommandLine(args, default_final_tasks) 231 return task_manager.ExecuteWithCommandLine(args, default_final_tasks)
231 232
232 233
233 def main(command_line_args): 234 def main(command_line_args):
234 logging.basicConfig(level=logging.INFO) 235 logging.basicConfig(level=logging.INFO)
235 devil_chromium.Initialize() 236 devil_chromium.Initialize()
236 237
237 args = _ArgumentParser().parse_args(command_line_args) 238 args = _ArgumentParser().parse_args(command_line_args)
238 OPTIONS.SetParsedArgs(args) 239 OPTIONS.SetParsedArgs(args)
239 240
240 if args.subcommand == 'record-test-trace': 241 if args.subcommand == 'record-test-trace':
241 return _RecordWebServerTestTrace(args) 242 return _RecordWebServerTestTrace(args)
242 if args.subcommand == 'run': 243 if args.subcommand == 'run':
243 return _RunAllMain(args) 244 return _RunAllMain(args)
244 if args.subcommand == 'collect-csv': 245 if args.subcommand == 'collect-csv':
245 with args.output_csv as output_file: 246 with args.output_csv as output_file:
246 if not csv_util.CollectCSVsFromDirectory(args.output_dir, output_file): 247 if not csv_util.CollectCSVsFromDirectory(args.output_dir, output_file):
247 return 1 248 return 1
248 return 0 249 return 0
249 assert False 250 assert False
250 251
251 252
252 if __name__ == '__main__': 253 if __name__ == '__main__':
253 sys.exit(main(sys.argv[1:])) 254 sys.exit(main(sys.argv[1:]))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698