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