| OLD | NEW | 
|---|
| 1 # Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2015 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 argparse | 4 import argparse | 
| 5 import os | 5 import os | 
| 6 import sys | 6 import sys | 
| 7 import traceback | 7 import traceback | 
| 8 | 8 | 
| 9 import perf_insights | 9 import perf_insights | 
| 10 from perf_insights import local_directory_corpus_driver | 10 from perf_insights import local_directory_corpus_driver | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 49 | 49 | 
| 50 | 50 | 
| 51 def Main(argv): | 51 def Main(argv): | 
| 52   parser = argparse.ArgumentParser( | 52   parser = argparse.ArgumentParser( | 
| 53       description='Bulk trace processing') | 53       description='Bulk trace processing') | 
| 54   parser.add_argument( | 54   parser.add_argument( | 
| 55       '-c', '--corpus', | 55       '-c', '--corpus', | 
| 56       choices=_CORPUS_DRIVERS.keys(), | 56       choices=_CORPUS_DRIVERS.keys(), | 
| 57       default=_CORPUS_DRIVER_DEFAULT) | 57       default=_CORPUS_DRIVER_DEFAULT) | 
| 58   parser.add_argument('--query') | 58   parser.add_argument('--query') | 
| 59   parser.add_argument('map_file') | 59   parser.add_argument('map_function_name') | 
|  | 60   parser.add_argument('--map-file') | 
| 60 | 61 | 
|  | 62   parser.add_argument('--no-vulcanize', dest='vulcanize', | 
|  | 63                       action='store_false', default=True) | 
| 61   parser.add_argument('-j', '--jobs', type=int, default=1) | 64   parser.add_argument('-j', '--jobs', type=int, default=1) | 
| 62   parser.add_argument('-o', '--output-file') | 65   parser.add_argument('-o', '--output-file') | 
| 63   parser.add_argument('-s', '--stop-on-error', | 66   parser.add_argument('-s', '--stop-on-error', | 
| 64                       action='store_true') | 67                       action='store_true') | 
| 65 | 68 | 
| 66   for k, v in _CORPUS_DRIVERS.iteritems(): | 69   for k, v in _CORPUS_DRIVERS.iteritems(): | 
| 67     if not v: | 70     if not v: | 
| 68       continue | 71       continue | 
| 69     parser_group = parser.add_argument_group(k) | 72     parser_group = parser.add_argument_group(k) | 
| 70     driver_cls = v['class'] | 73     driver_cls = v['class'] | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 82     corpus_descriptions = '\n'.join( | 85     corpus_descriptions = '\n'.join( | 
| 83         ['%s: %s' % (k, v['description']) | 86         ['%s: %s' % (k, v['description']) | 
| 84             for k, v in _CORPUS_DRIVERS.iteritems() if v] | 87             for k, v in _CORPUS_DRIVERS.iteritems() if v] | 
| 85       ) | 88       ) | 
| 86     parser.exit('Valid drivers:\n\n%s\n' % corpus_descriptions) | 89     parser.exit('Valid drivers:\n\n%s\n' % corpus_descriptions) | 
| 87 | 90 | 
| 88   cls = _CORPUS_DRIVERS[corpus]['class'] | 91   cls = _CORPUS_DRIVERS[corpus]['class'] | 
| 89   init_args = cls.CheckAndCreateInitArguments(parser, args) | 92   init_args = cls.CheckAndCreateInitArguments(parser, args) | 
| 90   corpus_driver = cls(**init_args) | 93   corpus_driver = cls(**init_args) | 
| 91 | 94 | 
| 92   if not os.path.exists(args.map_file): | 95   if args.map_file and not os.path.exists(args.map_file): | 
| 93     parser.error('Map does not exist.') | 96     parser.error('Map does not exist.') | 
| 94 | 97 | 
| 95   if args.query == 'help': | 98   if args.query == 'help': | 
| 96     parser.exit(_CORPUS_QUERY_HELP) | 99     parser.exit(_CORPUS_QUERY_HELP) | 
| 97   elif args.query is None: | 100   elif args.query is None: | 
| 98     query = corpus_query.CorpusQuery.FromString('True') | 101     query = corpus_query.CorpusQuery.FromString('True') | 
| 99   else: | 102   else: | 
| 100     query = corpus_query.CorpusQuery.FromString(args.query) | 103     query = corpus_query.CorpusQuery.FromString(args.query) | 
| 101 | 104 | 
| 102   if args.output_file: | 105   if args.output_file: | 
| 103     ofile = open(args.output_file, 'w') | 106     ofile = open(args.output_file, 'w') | 
| 104   else: | 107   else: | 
| 105     ofile = sys.stdout | 108     ofile = sys.stdout | 
| 106 | 109 | 
| 107   output_formatter = json_output_formatter.JSONOutputFormatter(ofile) | 110   output_formatter = json_output_formatter.JSONOutputFormatter(ofile) | 
| 108 | 111 | 
|  | 112   map_file_path = None | 
|  | 113   if args.map_file: | 
|  | 114     map_file_path = os.path.abspath(args.map_file) | 
| 109   map_function_handle = map_function_handle_module.MapFunctionHandle( | 115   map_function_handle = map_function_handle_module.MapFunctionHandle( | 
| 110       filename=os.path.abspath(args.map_file)) | 116       filename=map_file_path, map_function_name=args.map_function_name) | 
| 111   try: | 117   try: | 
| 112     trace_handles = corpus_driver.GetTraceHandlesMatchingQuery(query) | 118     trace_handles = corpus_driver.GetTraceHandlesMatchingQuery(query) | 
| 113     runner = map_runner.MapRunner(trace_handles, map_function_handle, | 119     runner = map_runner.MapRunner(trace_handles, map_function_handle, | 
| 114                                   stop_on_error=args.stop_on_error) | 120                                   stop_on_error=args.stop_on_error, | 
|  | 121                                   vulcanize=args.vulcanize) | 
| 115     results = runner.Run(jobs=args.jobs, output_formatters=[output_formatter]) | 122     results = runner.Run(jobs=args.jobs, output_formatters=[output_formatter]) | 
| 116     if not results.had_failures: | 123     if not results.had_failures: | 
| 117       return 0 | 124       return 0 | 
| 118     else: | 125     else: | 
| 119       return 255 | 126       return 255 | 
| 120   finally: | 127   finally: | 
| 121     if ofile != sys.stdout: | 128     if ofile != sys.stdout: | 
| 122       ofile.close() | 129       ofile.close() | 
| OLD | NEW | 
|---|