Fix return code issue, check return code of safari process and dump results to log
[WebKit-https.git] / Tools / Scripts / run-benchmark
1 #!/usr/bin/env python
2
3 import argparse
4 import logging
5 import sys
6
7 from webkitpy.benchmark_runner.benchmark_runner import BenchmarkRunner
8
9
10 _log = logging.getLogger()
11 _log.setLevel(logging.INFO)
12 ch = logging.StreamHandler()
13 formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
14 ch.setFormatter(formatter)
15 _log.addHandler(ch)
16
17
18 def main():
19     parser = argparse.ArgumentParser(description='Automate the browser based performance benchmarks')
20     parser.add_argument('--output-file', dest='output', default=None)
21     parser.add_argument('--build-directory', dest='buildDir', required=True)
22     parser.add_argument('--plan', dest='plan', required=True)
23     parser.add_argument('--platform', dest='platform', default='osx', choices=['osx', 'ios', 'windows'], required=True)
24     # FIXME: Should we add chrome as an option? Well, chrome uses webkit in iOS.
25     parser.add_argument('--browser', dest='browser', default='safari', choices=['safari', 'chrome'], required=True)
26     parser.add_argument('--debug', action='store_true')
27     args = parser.parse_args()
28     
29     if args.debug:
30         _log.setLevel(logging.DEBUG)
31     _log.debug('Initializing program with following parameters')
32     _log.debug('\toutput file name\t: %s' % args.output)
33     _log.debug('\tbuild directory\t: %s' % args.buildDir)
34     _log.debug('\tplan name\t: %s', args.plan)
35     runner = BenchmarkRunner(args.plan, args.buildDir, args.output, args.platform, args.browser)
36     return runner.execute()
37
38 if __name__ == '__main__':
39     sys.exit(main())