| OLD | NEW |
| 1 # Copyright 2012 The Chromium Authors. All rights reserved. | 1 # Copyright 2012 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 import sys | 4 import sys |
| 5 | 5 |
| 6 from telemetry import decorators | 6 from telemetry import decorators |
| 7 from telemetry.core import browser_finder | 7 from telemetry.core import browser_finder |
| 8 from telemetry.core import browser_finder_exceptions | 8 from telemetry.core import browser_finder_exceptions |
| 9 from telemetry.core import browser_options | 9 from telemetry.core import browser_options |
| 10 from telemetry.core import command_line | 10 from telemetry.core import command_line |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 self.stream = sys.stdout | 28 self.stream = sys.stdout |
| 29 | 29 |
| 30 @classmethod | 30 @classmethod |
| 31 def CreateParser(cls): | 31 def CreateParser(cls): |
| 32 options = browser_options.BrowserFinderOptions() | 32 options = browser_options.BrowserFinderOptions() |
| 33 options.browser_type = 'any' | 33 options.browser_type = 'any' |
| 34 parser = options.CreateParser('%%prog %s' % cls.usage) | 34 parser = options.CreateParser('%%prog %s' % cls.usage) |
| 35 return parser | 35 return parser |
| 36 | 36 |
| 37 @classmethod | 37 @classmethod |
| 38 def AddCommandLineArgs(cls, parser): | 38 def AddCommandLineArgs(cls, parser, _): |
| 39 parser.add_option('--repeat-count', type='int', default=1, | 39 parser.add_option('--repeat-count', type='int', default=1, |
| 40 help='Repeats each a provided number of times.') | 40 help='Repeats each a provided number of times.') |
| 41 parser.add_option('-d', '--also-run-disabled-tests', | 41 parser.add_option('-d', '--also-run-disabled-tests', |
| 42 dest='run_disabled_tests', | 42 dest='run_disabled_tests', |
| 43 action='store_true', default=False, | 43 action='store_true', default=False, |
| 44 help='Ignore @Disabled and @Enabled restrictions.') | 44 help='Ignore @Disabled and @Enabled restrictions.') |
| 45 parser.add_option('--exact-test-filter', action='store_true', default=False, | 45 parser.add_option('--exact-test-filter', action='store_true', default=False, |
| 46 help='Treat test filter as exact matches (default is ' | 46 help='Treat test filter as exact matches (default is ' |
| 47 'substring matches).') | 47 'substring matches).') |
| 48 | 48 |
| 49 typ.ArgumentParser.add_option_group(parser, | 49 typ.ArgumentParser.add_option_group(parser, |
| 50 "Options for running the tests", | 50 "Options for running the tests", |
| 51 running=True, | 51 running=True, |
| 52 skip=['-d', '-v', '--verbose']) | 52 skip=['-d', '-v', '--verbose']) |
| 53 typ.ArgumentParser.add_option_group(parser, | 53 typ.ArgumentParser.add_option_group(parser, |
| 54 "Options for reporting the results", | 54 "Options for reporting the results", |
| 55 reporting=True) | 55 reporting=True) |
| 56 | 56 |
| 57 @classmethod | 57 @classmethod |
| 58 def ProcessCommandLineArgs(cls, parser, args): | 58 def ProcessCommandLineArgs(cls, parser, args, _): |
| 59 # We retry failures by default unless we're running a list of tests | 59 # We retry failures by default unless we're running a list of tests |
| 60 # explicitly. | 60 # explicitly. |
| 61 if not args.retry_limit and not args.positional_args: | 61 if not args.retry_limit and not args.positional_args: |
| 62 args.retry_limit = 3 | 62 args.retry_limit = 3 |
| 63 | 63 |
| 64 try: | 64 try: |
| 65 possible_browser = browser_finder.FindBrowser(args) | 65 possible_browser = browser_finder.FindBrowser(args) |
| 66 except browser_finder_exceptions.BrowserFinderException, ex: | 66 except browser_finder_exceptions.BrowserFinderException, ex: |
| 67 parser.error(ex) | 67 parser.error(ex) |
| 68 | 68 |
| 69 if not possible_browser: | 69 if not possible_browser: |
| 70 parser.error('No browser found of type %s. Cannot run tests.\n' | 70 parser.error('No browser found of type %s. Cannot run tests.\n' |
| 71 'Re-run with --browser=list to see ' | 71 'Re-run with --browser=list to see ' |
| 72 'available browser types.' % args.browser_type) | 72 'available browser types.' % args.browser_type) |
| 73 | 73 |
| 74 @classmethod | 74 @classmethod |
| 75 def main(cls, args=None, stream=None): # pylint: disable=W0221 | 75 def main(cls, args=None, stream=None): # pylint: disable=W0221 |
| 76 # We override the superclass so that we can hook in the 'stream' arg. | 76 # We override the superclass so that we can hook in the 'stream' arg. |
| 77 parser = cls.CreateParser() | 77 parser = cls.CreateParser() |
| 78 cls.AddCommandLineArgs(parser) | 78 cls.AddCommandLineArgs(parser, None) |
| 79 options, positional_args = parser.parse_args(args) | 79 options, positional_args = parser.parse_args(args) |
| 80 options.positional_args = positional_args | 80 options.positional_args = positional_args |
| 81 cls.ProcessCommandLineArgs(parser, options) | 81 cls.ProcessCommandLineArgs(parser, options, None) |
| 82 | 82 |
| 83 obj = cls() | 83 obj = cls() |
| 84 if stream is not None: | 84 if stream is not None: |
| 85 obj.stream = stream | 85 obj.stream = stream |
| 86 return obj.Run(options) | 86 return obj.Run(options) |
| 87 | 87 |
| 88 def Run(self, args): | 88 def Run(self, args): |
| 89 possible_browser = browser_finder.FindBrowser(args) | 89 possible_browser = browser_finder.FindBrowser(args) |
| 90 | 90 |
| 91 runner = typ.Runner() | 91 runner = typ.Runner() |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 | 182 |
| 183 | 183 |
| 184 def _TearDownProcess(child, context): # pylint: disable=W0613 | 184 def _TearDownProcess(child, context): # pylint: disable=W0613 |
| 185 browser_test_case.teardown_browser() | 185 browser_test_case.teardown_browser() |
| 186 options_for_unittests.Pop() | 186 options_for_unittests.Pop() |
| 187 | 187 |
| 188 | 188 |
| 189 if __name__ == '__main__': | 189 if __name__ == '__main__': |
| 190 ret_code = RunTestsCommand.main() | 190 ret_code = RunTestsCommand.main() |
| 191 sys.exit(ret_code) | 191 sys.exit(ret_code) |
| OLD | NEW |