| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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:])) |
| OLD | NEW |