OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2015 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2015 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 """See README.md for usage instructions. | 6 """See README.md for usage instructions. |
7 | 7 |
8 This file heavily modified from build/scripts/slave/gtest_slave_utils.py and | 8 This file heavily modified from build/scripts/slave/gtest_slave_utils.py and |
9 is intended to replace it as all tests move to swarming. | 9 is intended to replace it as all tests move to swarming. |
10 TODO(estaab): Remove build/scripts/slave/gtest.* once this is fully deployed. | 10 TODO(estaab): Remove build/scripts/slave/gtest.* once this is fully deployed. |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 generator.generate_times_ms_file() | 80 generator.generate_times_ms_file() |
81 | 81 |
82 | 82 |
83 def main(): | 83 def main(): |
84 option_parser = optparse.OptionParser() | 84 option_parser = optparse.OptionParser() |
85 option_parser.add_option('--test-type', | 85 option_parser.add_option('--test-type', |
86 help='Test type that generated the results json,' | 86 help='Test type that generated the results json,' |
87 ' e.g. unit-tests.') | 87 ' e.g. unit-tests.') |
88 option_parser.add_option('--results-directory', default=os.getcwd(), | 88 option_parser.add_option('--results-directory', default=os.getcwd(), |
89 help='Output results directory source dir.') | 89 help='Output results directory source dir.') |
90 option_parser.add_option('--input-gtest-json', | 90 option_parser.add_option('--input-json', |
91 help='Test results json file (input for us).') | 91 help='Test results json file (input for us).') |
92 option_parser.add_option('--builder-name', | 92 option_parser.add_option('--builder-name', |
93 default='DUMMY_BUILDER_NAME', | 93 default='DUMMY_BUILDER_NAME', |
94 help='The name of the builder shown on the ' | 94 help='The name of the builder shown on the ' |
95 'waterfall running this script e.g. WebKit.') | 95 'waterfall running this script e.g. WebKit.') |
96 option_parser.add_option('--build-number', | 96 option_parser.add_option('--build-number', |
97 help='The build number of the builder running' | 97 help='The build number of the builder running' |
98 'this script.') | 98 'this script.') |
99 option_parser.add_option('--test-results-server', | 99 option_parser.add_option('--test-results-server', |
100 help='The test results server to upload the ' | 100 help='The test results server to upload the ' |
101 'results.') | 101 'results.') |
102 option_parser.add_option('--master-name', | 102 option_parser.add_option('--master-name', |
103 help='The name of the buildbot master. ' | 103 help='The name of the buildbot master. ' |
104 'Both test-results-server and master-name ' | 104 'Both test-results-server and master-name ' |
105 'need to be specified to upload the results ' | 105 'need to be specified to upload the results ' |
106 'to the server.') | 106 'to the server.') |
107 option_parser.add_option('--chrome-revision', default='0', | 107 option_parser.add_option('--chrome-revision', default='0', |
108 help='The Chromium revision being tested. If not ' | 108 help='The Chromium revision being tested. If not ' |
109 'given, defaults to 0.') | 109 'given, defaults to 0.') |
110 | 110 |
111 options = option_parser.parse_args()[0] | 111 options = option_parser.parse_args()[0] |
112 logging.basicConfig() | 112 logging.basicConfig() |
113 | 113 |
114 if not options.test_type: | 114 if not options.test_type: |
115 option_parser.error('--test-type needs to be specified.') | 115 option_parser.error('--test-type needs to be specified.') |
116 return 1 | 116 return 1 |
117 | 117 |
118 if not options.input_gtest_json: | 118 if not options.input_json: |
119 option_parser.error('--input-gtest-json needs to be specified.') | 119 option_parser.error('--input-json needs to be specified.') |
120 return 1 | 120 return 1 |
121 | 121 |
122 if options.test_results_server and not options.master_name: | 122 if options.test_results_server and not options.master_name: |
123 logging.warn('--test-results-server is given but ' | 123 logging.warn('--test-results-server is given but ' |
124 '--master-name is not specified; the results won\'t be ' | 124 '--master-name is not specified; the results won\'t be ' |
125 'uploaded to the server.') | 125 'uploaded to the server.') |
126 | 126 |
127 with file(options.input_gtest_json) as json_file: | 127 with file(options.input_json) as json_file: |
128 results_map = get_results_map_from_json(json_file.read()) | 128 results_map = get_results_map_from_json(json_file.read()) |
129 | 129 |
130 generate_json_results(results_map, options.builder_name, | 130 generate_json_results(results_map, options.builder_name, |
131 options.build_number, options.results_directory, | 131 options.build_number, options.results_directory, |
132 options.chrome_revision, options.master_name) | 132 options.chrome_revision, options.master_name) |
133 | 133 |
134 # Upload to a test results server if specified. | 134 # Upload to a test results server if specified. |
135 if options.test_results_server and options.master_name: | 135 if options.test_results_server and options.master_name: |
136 print 'Uploading JSON files for builder "%s" to server "%s"' % ( | 136 print 'Uploading JSON files for builder "%s" to server "%s"' % ( |
137 options.builder_name, options.test_results_server) | 137 options.builder_name, options.test_results_server) |
138 attrs = [('builder', options.builder_name), | 138 attrs = [('builder', options.builder_name), |
139 ('testtype', options.test_type), | 139 ('testtype', options.test_type), |
140 ('master', options.master_name)] | 140 ('master', options.master_name)] |
141 | 141 |
142 files = [(f, os.path.join(options.results_directory, f)) for f in | 142 files = [(f, os.path.join(options.results_directory, f)) for f in |
143 (FULL_RESULTS_FILENAME, TIMES_MS_FILENAME)] | 143 (FULL_RESULTS_FILENAME, TIMES_MS_FILENAME)] |
144 | 144 |
145 # Set uploading timeout in case appengine server is having problem. | 145 # Set uploading timeout in case appengine server is having problem. |
146 # 120 seconds are more than enough to upload test results. | 146 # 120 seconds are more than enough to upload test results. |
147 test_results_uploader.upload_test_results( | 147 test_results_uploader.upload_test_results( |
148 options.test_results_server, attrs, files, 120) | 148 options.test_results_server, attrs, files, 120) |
149 return 0 | 149 return 0 |
150 | 150 |
151 | 151 |
152 if __name__ == '__main__': | 152 if __name__ == '__main__': |
153 sys.exit(main()) | 153 sys.exit(main()) |
OLD | NEW |