Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 | 4 |
| 5 """This script tests the installer with test cases specified in the config file. | 5 """This script tests the installer with test cases specified in the config file. |
| 6 | 6 |
| 7 For each test case, it checks that the machine states after the execution of | 7 For each test case, it checks that the machine states after the execution of |
| 8 each command match the expected machine states. For more details, take a look at | 8 each command match the expected machine states. For more details, take a look at |
| 9 the design documentation at http://goo.gl/Q0rGM6 | 9 the design documentation at http://goo.gl/Q0rGM6 |
| 10 """ | 10 """ |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 193 config: A Config object. | 193 config: A Config object. |
| 194 | 194 |
| 195 Returns: | 195 Returns: |
| 196 True if all the tests passed, or False otherwise. | 196 True if all the tests passed, or False otherwise. |
| 197 """ | 197 """ |
| 198 suite = unittest.TestSuite() | 198 suite = unittest.TestSuite() |
| 199 path_resolver = PathResolver(mini_installer_path) | 199 path_resolver = PathResolver(mini_installer_path) |
| 200 for test in config.tests: | 200 for test in config.tests: |
| 201 suite.addTest(InstallerTest(test, config, path_resolver)) | 201 suite.addTest(InstallerTest(test, config, path_resolver)) |
| 202 result = unittest.TextTestRunner(verbosity=2).run(suite) | 202 result = unittest.TextTestRunner(verbosity=2).run(suite) |
| 203 | |
| 204 # We want to terminate all child processes that were spawned during the tests. | |
| 205 # One way to do this is to put them in a job object. However, Chrome also uses | |
| 206 # a job object and the ability to use nested jobs was only added in Windows 8. | |
| 207 # Work around this by using taskkill. | |
| 208 subprocess.call('taskkill /f /im chrome.exe', shell=True) | |
|
gab
2013/09/13 21:16:10
If the intention is to exit cleanly, would it make
| |
| 209 | |
| 203 return result.wasSuccessful() | 210 return result.wasSuccessful() |
| 204 | 211 |
| 205 | 212 |
| 206 def main(): | 213 def main(): |
| 207 usage = 'usage: %prog [options] config_filename' | 214 usage = 'usage: %prog [options] config_filename' |
| 208 parser = optparse.OptionParser(usage, description='Test the installer.') | 215 parser = optparse.OptionParser(usage, description='Test the installer.') |
| 209 parser.add_option('--build-dir', default='out', | 216 parser.add_option('--build-dir', default='out', |
| 210 help='Path to main build directory (the parent of the ' | 217 help='Path to main build directory (the parent of the ' |
| 211 'Release or Debug directory)') | 218 'Release or Debug directory)') |
| 212 parser.add_option('--target', default='Release', | 219 parser.add_option('--target', default='Release', |
| 213 help='Build target (Release or Debug)') | 220 help='Build target (Release or Debug)') |
| 214 options, args = parser.parse_args() | 221 options, args = parser.parse_args() |
| 215 if len(args) != 1: | 222 if len(args) != 1: |
| 216 parser.error('Incorrect number of arguments.') | 223 parser.error('Incorrect number of arguments.') |
| 217 config_filename = args[0] | 224 config_filename = args[0] |
| 218 | 225 |
| 219 mini_installer_path = os.path.join(options.build_dir, options.target, | 226 mini_installer_path = os.path.join(options.build_dir, options.target, |
| 220 'mini_installer.exe') | 227 'mini_installer.exe') |
| 221 assert os.path.exists(mini_installer_path), ('Could not find file %s' % | 228 assert os.path.exists(mini_installer_path), ('Could not find file %s' % |
| 222 mini_installer_path) | 229 mini_installer_path) |
| 223 config = ParseConfigFile(config_filename) | 230 config = ParseConfigFile(config_filename) |
| 224 if not RunTests(mini_installer_path, config): | 231 if not RunTests(mini_installer_path, config): |
| 225 return 1 | 232 return 1 |
| 226 return 0 | 233 return 0 |
| 227 | 234 |
| 228 | 235 |
| 229 if __name__ == '__main__': | 236 if __name__ == '__main__': |
| 230 sys.exit(main()) | 237 sys.exit(main()) |
| OLD | NEW |