| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright 2013 The Chromium Authors. All rights reserved. | 3 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 """Runs all types of tests from one unified interface.""" | 7 """Runs all types of tests from one unified interface.""" |
| 8 | 8 |
| 9 import argparse | 9 import argparse |
| 10 import collections | 10 import collections |
| (...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 599 group.add_argument( | 599 group.add_argument( |
| 600 '--no-timeout', action='store_true', | 600 '--no-timeout', action='store_true', |
| 601 help=('Do not impose a timeout. Each perf step is responsible for ' | 601 help=('Do not impose a timeout. Each perf step is responsible for ' |
| 602 'implementing the timeout logic.')) | 602 'implementing the timeout logic.')) |
| 603 group.add_argument( | 603 group.add_argument( |
| 604 '-f', '--test-filter', | 604 '-f', '--test-filter', |
| 605 help=('Test filter (will match against the names listed in --steps).')) | 605 help=('Test filter (will match against the names listed in --steps).')) |
| 606 group.add_argument( | 606 group.add_argument( |
| 607 '--dry-run', action='store_true', | 607 '--dry-run', action='store_true', |
| 608 help='Just print the steps without executing.') | 608 help='Just print the steps without executing.') |
| 609 # Uses 0.1 degrees C because that's what Android does. |
| 610 group.add_argument( |
| 611 '--max-battery-temp', type=int, |
| 612 help='Only start tests when the battery is at or below the given ' |
| 613 'temperature (0.1 C)') |
| 609 group.add_argument('single_step_command', nargs='*', action=SingleStepAction, | 614 group.add_argument('single_step_command', nargs='*', action=SingleStepAction, |
| 610 help='If --single-step is specified, the command to run.') | 615 help='If --single-step is specified, the command to run.') |
| 611 AddCommonOptions(parser) | 616 AddCommonOptions(parser) |
| 612 AddDeviceOptions(parser) | 617 AddDeviceOptions(parser) |
| 613 | 618 |
| 614 | 619 |
| 615 def ProcessPerfTestOptions(args): | 620 def ProcessPerfTestOptions(args): |
| 616 """Processes all perf test options. | 621 """Processes all perf test options. |
| 617 | 622 |
| 618 Args: | 623 Args: |
| 619 args: argparse.Namespace object. | 624 args: argparse.Namespace object. |
| 620 | 625 |
| 621 Returns: | 626 Returns: |
| 622 A PerfOptions named tuple which contains all options relevant to | 627 A PerfOptions named tuple which contains all options relevant to |
| 623 perf tests. | 628 perf tests. |
| 624 """ | 629 """ |
| 625 # TODO(jbudorick): Move single_step handling down into the perf tests. | 630 # TODO(jbudorick): Move single_step handling down into the perf tests. |
| 626 if args.single_step: | 631 if args.single_step: |
| 627 args.single_step = ' '.join(args.single_step_command) | 632 args.single_step = ' '.join(args.single_step_command) |
| 628 # TODO(jbudorick): Get rid of PerfOptions. | 633 # TODO(jbudorick): Get rid of PerfOptions. |
| 629 return perf_test_options.PerfOptions( | 634 return perf_test_options.PerfOptions( |
| 630 args.steps, args.flaky_steps, args.output_json_list, | 635 args.steps, args.flaky_steps, args.output_json_list, |
| 631 args.print_step, args.no_timeout, args.test_filter, | 636 args.print_step, args.no_timeout, args.test_filter, |
| 632 args.dry_run, args.single_step, args.collect_chartjson_data, | 637 args.dry_run, args.single_step, args.collect_chartjson_data, |
| 633 args.output_chartjson_data) | 638 args.output_chartjson_data, args.max_battery_temp) |
| 634 | 639 |
| 635 | 640 |
| 636 def AddPythonTestOptions(parser): | 641 def AddPythonTestOptions(parser): |
| 637 group = parser.add_argument_group('Python Test Options') | 642 group = parser.add_argument_group('Python Test Options') |
| 638 group.add_argument( | 643 group.add_argument( |
| 639 '-s', '--suite', dest='suite_name', metavar='SUITE_NAME', | 644 '-s', '--suite', dest='suite_name', metavar='SUITE_NAME', |
| 640 choices=constants.PYTHON_UNIT_TEST_SUITES.keys(), | 645 choices=constants.PYTHON_UNIT_TEST_SUITES.keys(), |
| 641 help='Name of the test suite to run.') | 646 help='Name of the test suite to run.') |
| 642 AddCommonOptions(parser) | 647 AddCommonOptions(parser) |
| 643 | 648 |
| (...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1047 if e.is_infra_error: | 1052 if e.is_infra_error: |
| 1048 return constants.INFRA_EXIT_CODE | 1053 return constants.INFRA_EXIT_CODE |
| 1049 return constants.ERROR_EXIT_CODE | 1054 return constants.ERROR_EXIT_CODE |
| 1050 except: # pylint: disable=W0702 | 1055 except: # pylint: disable=W0702 |
| 1051 logging.exception('Unrecognized error occurred.') | 1056 logging.exception('Unrecognized error occurred.') |
| 1052 return constants.ERROR_EXIT_CODE | 1057 return constants.ERROR_EXIT_CODE |
| 1053 | 1058 |
| 1054 | 1059 |
| 1055 if __name__ == '__main__': | 1060 if __name__ == '__main__': |
| 1056 sys.exit(main()) | 1061 sys.exit(main()) |
| OLD | NEW |