Example #1
0
def main():
  parser = argparse.ArgumentParser()
  AddCommonArgs(parser)
  parser.add_argument('child_args', nargs='*',
                      help='Arguments for the test process.')
  args = parser.parse_args()
  ConfigureLogging(args)

  with GetDeploymentTargetForArgs(args) as target:
    target.Start()

    run_package_args = RunPackageArgs.FromCommonArgs(args)
    return RunPackage(
        args.output_directory, target, args.package, args.package_name,
        args.package_dep, args.child_args, run_package_args)
Example #2
0
def main():
  parser = argparse.ArgumentParser()
  AddCommonArgs(parser)
  parser.add_argument(
      '--child-arg',
      action='append',
      help='Arguments for the executable.',
      default=[])
  parser.add_argument(
      'child_args', nargs='*', help='Arguments for the executable.', default=[])
  args = parser.parse_args()
  ConfigureLogging(args)

  with GetDeploymentTargetForArgs(args) as target:
    target.Start()

    child_args = args.child_arg + args.child_args
    run_package_args = RunPackageArgs.FromCommonArgs(args)
    returncode = RunPackage(args.output_directory, target, args.package,
                            args.package_name, child_args, run_package_args)
Example #3
0
def main():
    parser = argparse.ArgumentParser()
    AddCommonArgs(parser)

    parser.add_argument('--gtest_filter',
                        help='GTest filter to use in place of any default.')
    parser.add_argument(
        '--gtest_repeat',
        help='GTest repeat value to use. This also disables the '
        'test launcher timeout.')
    parser.add_argument(
        '--test-launcher-retry-limit',
        help='Number of times that test suite will retry failing '
        'tests. This is multiplicative with --gtest_repeat.')
    parser.add_argument('--test-launcher-shard-index',
                        type=int,
                        default=os.environ.get('GTEST_SHARD_INDEX'),
                        help='Index of this instance amongst swarming shards.')
    parser.add_argument('--test-launcher-total-shards',
                        type=int,
                        default=os.environ.get('GTEST_TOTAL_SHARDS'),
                        help='Total number of swarming shards of this suite.')
    parser.add_argument('--gtest_break_on_failure',
                        action='store_true',
                        default=False,
                        help='Should GTest break on failure; useful with '
                        '--gtest_repeat.')
    parser.add_argument('--single-process-tests',
                        action='store_true',
                        default=False,
                        help='Runs the tests and the launcher in the same '
                        'process. Useful for debugging.')
    parser.add_argument('--test-launcher-batch-limit',
                        type=int,
                        help='Sets the limit of test batch to run in a single '
                        'process.')
    # --test-launcher-filter-file is specified relative to --output-directory,
    # so specifying type=os.path.* will break it.
    parser.add_argument(
        '--test-launcher-filter-file',
        default=None,
        help='Override default filter file passed to target test '
        'process. Set an empty path to disable filtering.')
    parser.add_argument('--test-launcher-jobs',
                        type=int,
                        help='Sets the number of parallel test jobs.')
    parser.add_argument('--test-launcher-summary-output',
                        help='Where the test launcher will output its json.')
    parser.add_argument('--enable-test-server',
                        action='store_true',
                        default=False,
                        help='Enable Chrome test server spawner.')
    parser.add_argument(
        '--test-launcher-bot-mode',
        action='store_true',
        default=False,
        help='Informs the TestLauncher to that it should enable '
        'special allowances for running on a test bot.')
    parser.add_argument('--child-arg',
                        action='append',
                        help='Arguments for the test process.')
    parser.add_argument('child_args',
                        nargs='*',
                        help='Arguments for the test process.')
    args = parser.parse_args()

    # Flag output_directory is required for tests launched with this script.
    if not args.output_directory:
        raise ValueError("output-directory must be specified.")

    ConfigureLogging(args)

    child_args = []
    if args.test_launcher_shard_index != None:
        child_args.append('--test-launcher-shard-index=%d' %
                          args.test_launcher_shard_index)
    if args.test_launcher_total_shards != None:
        child_args.append('--test-launcher-total-shards=%d' %
                          args.test_launcher_total_shards)
    if args.single_process_tests:
        child_args.append('--single-process-tests')
    if args.test_launcher_bot_mode:
        child_args.append('--test-launcher-bot-mode')
    if args.test_launcher_batch_limit:
        child_args.append('--test-launcher-batch-limit=%d' %
                          args.test_launcher_batch_limit)

    # Only set --test-launcher-jobs if the caller specifies it, in general.
    # If the caller enables the test-server then we need to launch the right
    # number of instances to match the maximum number of parallel test jobs, so
    # in that case we set --test-launcher-jobs based on the number of CPU cores
    # specified for the emulator to use.
    test_concurrency = None
    if args.test_launcher_jobs:
        test_concurrency = args.test_launcher_jobs
    elif args.enable_test_server:
        if args.device == 'device':
            test_concurrency = DEFAULT_TEST_SERVER_CONCURRENCY
        else:
            test_concurrency = args.qemu_cpu_cores
    if test_concurrency:
        child_args.append('--test-launcher-jobs=%d' % test_concurrency)

    if args.gtest_filter:
        child_args.append('--gtest_filter=' + args.gtest_filter)
    if args.gtest_repeat:
        child_args.append('--gtest_repeat=' + args.gtest_repeat)
        child_args.append('--test-launcher-timeout=-1')
    if args.test_launcher_retry_limit:
        child_args.append('--test-launcher-retry-limit=' +
                          args.test_launcher_retry_limit)
    if args.gtest_break_on_failure:
        child_args.append('--gtest_break_on_failure')
    if args.test_launcher_summary_output:
        child_args.append('--test-launcher-summary-output=' + TEST_RESULT_PATH)

    if args.child_arg:
        child_args.extend(args.child_arg)
    if args.child_args:
        child_args.extend(args.child_args)

    with GetDeploymentTargetForArgs(args) as target:
        target.Start()

        if args.test_launcher_filter_file:
            target.PutFile(args.test_launcher_filter_file,
                           TEST_FILTER_PATH,
                           for_package=args.package_name)
            child_args.append('--test-launcher-filter-file=' +
                              TEST_FILTER_PATH)

        isolated_outputs_dir = os.path.dirname(args.system_log_file)
        if os.path.isdir(isolated_outputs_dir):
            # Store logging popen objects so that they live as long as the target.
            system_log_procs = StartSystemLogReader(target, args.package,
                                                    isolated_outputs_dir)

        test_server = None
        if args.enable_test_server:
            assert test_concurrency
            test_server = SetupTestServer(target, test_concurrency,
                                          args.package_name)

        run_package_args = RunPackageArgs.FromCommonArgs(args)
        returncode = RunPackage(args.output_directory, target, args.package,
                                args.package_name, child_args,
                                run_package_args)

        if test_server:
            test_server.Stop()

        if args.test_launcher_summary_output:
            target.GetFile(TEST_RESULT_PATH,
                           args.test_launcher_summary_output,
                           for_package=args.package_name)

        return returncode
def main():
    parser = argparse.ArgumentParser()
    AddCommonArgs(parser)
    parser.add_argument('--gtest_filter',
                        help='GTest filter to use in place of any default.')
    parser.add_argument(
        '--gtest_repeat',
        help='GTest repeat value to use. This also disables the '
        'test launcher timeout.')
    parser.add_argument(
        '--test-launcher-retry-limit',
        help='Number of times that test suite will retry failing '
        'tests. This is multiplicative with --gtest_repeat.')
    parser.add_argument('--gtest_break_on_failure',
                        action='store_true',
                        default=False,
                        help='Should GTest break on failure; useful with '
                        '--gtest_repeat.')
    parser.add_argument('--single-process-tests',
                        action='store_true',
                        default=False,
                        help='Runs the tests and the launcher in the same '
                        'process. Useful for debugging.')
    parser.add_argument('--test-launcher-batch-limit',
                        type=int,
                        help='Sets the limit of test batch to run in a single '
                        'process.')
    # --test-launcher-filter-file is specified relative to --output-directory,
    # so specifying type=os.path.* will break it.
    parser.add_argument(
        '--test-launcher-filter-file',
        default=None,
        help='Override default filter file passed to target test '
        'process. Set an empty path to disable filtering.')
    parser.add_argument('--test-launcher-jobs',
                        type=int,
                        help='Sets the number of parallel test jobs.')
    parser.add_argument('--test-launcher-summary-output',
                        help='Where the test launcher will output its json.')
    parser.add_argument('--enable-test-server',
                        action='store_true',
                        default=False,
                        help='Enable Chrome test server spawner.')
    parser.add_argument('child_args',
                        nargs='*',
                        help='Arguments for the test process.')
    parser.add_argument(
        '--test-launcher-bot-mode',
        action='store_true',
        default=False,
        help='Informs the TestLauncher to that it should enable '
        'special allowances for running on a test bot.')
    args = parser.parse_args()
    ConfigureLogging(args)

    child_args = ['--test-launcher-retry-limit=0']
    if args.single_process_tests:
        child_args.append('--single-process-tests')
    if args.test_launcher_bot_mode:
        child_args.append('--test-launcher-bot-mode')
    if args.test_launcher_batch_limit:
        child_args.append('--test-launcher-batch-limit=%d' %
                          args.test_launcher_batch_limit)

    test_concurrency = args.test_launcher_jobs \
        if args.test_launcher_jobs else DEFAULT_TEST_CONCURRENCY
    child_args.append('--test-launcher-jobs=%d' % test_concurrency)

    if args.gtest_filter:
        child_args.append('--gtest_filter=' + args.gtest_filter)
    if args.gtest_repeat:
        child_args.append('--gtest_repeat=' + args.gtest_repeat)
        child_args.append('--test-launcher-timeout=-1')
    if args.test_launcher_retry_limit:
        child_args.append('--test-launcher-retry-limit=' +
                          args.test_launcher_retry_limit)
    if args.gtest_break_on_failure:
        child_args.append('--gtest_break_on_failure')
    if args.child_args:
        child_args.extend(args.child_args)

    if args.test_launcher_summary_output:
        child_args.append('--test-launcher-summary-output=' + TEST_RESULT_PATH)

    with GetDeploymentTargetForArgs(args) as target:
        target.Start()

        if args.test_launcher_filter_file:
            target.PutFile(args.test_launcher_filter_file, TEST_FILTER_PATH)
            child_args.append('--test-launcher-filter-file=' +
                              TEST_FILTER_PATH)

        test_server = None
        if args.enable_test_server:
            test_server = SetupTestServer(target, test_concurrency)

        run_package_args = RunPackageArgs.FromCommonArgs(args)
        returncode = RunPackage(args.output_directory, target, args.package,
                                args.package_name, args.package_dep,
                                child_args, run_package_args)

        if test_server:
            test_server.Stop()

        if args.test_launcher_summary_output:
            target.GetFile(TEST_RESULT_PATH, args.test_launcher_summary_output)

        return returncode