- add sources.
[platform/framework/web/crosswalk.git] / src / tools / prepare-bisect-perf-regression.py
1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Prepare Performance Test Bisect Tool
7
8 This script is used by a trybot to create a working directory and sync an
9 initial copy of the depot for use in bisecting performance regressions.
10
11 An example usage:
12
13 ./tools/prepare-bisect-perf-regressions.py --working_directory "~/builds"
14   --output_buildbot_annotations
15
16 Would result in creating ~/builds/bisect and then populating it with a copy of
17 the depot.
18
19 """
20
21 import optparse
22 import sys
23
24 import bisect_utils
25
26
27 def main():
28
29   usage = ('%prog [options] [-- chromium-options]\n'
30            'Prepares a temporary depot for use on a trybot.')
31
32   parser = optparse.OptionParser(usage=usage)
33
34   parser.add_option('-w', '--working_directory',
35                     type='str',
36                     help='Path to the working directory where the script will '
37                     'do an initial checkout of the chromium depot. The '
38                     'files will be placed in a subdirectory "bisect" under '
39                     'working_directory and that will be used to perform the '
40                     'bisection.')
41   parser.add_option('--output_buildbot_annotations',
42                     action="store_true",
43                     help='Add extra annotation output for buildbot.')
44   parser.add_option('--target_platform',
45                     type='choice',
46                     choices=['chromium', 'cros', 'android'],
47                     default='chromium',
48                     help='The target platform. Choices are "chromium" (current '
49                     'platform), "cros", or "android". If you specify something '
50                     'other than "chromium", you must be properly set up to '
51                     'build that platform.')
52   (opts, args) = parser.parse_args()
53
54   if not opts.working_directory:
55     print 'Error: missing required parameter: --working_directory'
56     print
57     parser.print_help()
58     return 1
59
60   if not bisect_utils.CheckIfBisectDepotExists(opts):
61     try:
62       bisect_utils.CreateBisectDirectoryAndSetupDepot(opts,
63           bisect_utils.DEFAULT_GCLIENT_CUSTOM_DEPS)
64     except RuntimeError:
65       return 1
66   return 0
67
68
69 if __name__ == '__main__':
70   sys.exit(main())