| Index: build/android/pylib/browsertests/dispatch.py
|
| diff --git a/build/android/pylib/browsertests/dispatch.py b/build/android/pylib/browsertests/dispatch.py
|
| deleted file mode 100644
|
| index 1c8cfb4e8c7291d717a3c73094ccc04f09fdbff3..0000000000000000000000000000000000000000
|
| --- a/build/android/pylib/browsertests/dispatch.py
|
| +++ /dev/null
|
| @@ -1,116 +0,0 @@
|
| -# Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -"""Dispatches content_browsertests."""
|
| -
|
| -import logging
|
| -import os
|
| -import sys
|
| -
|
| -from pylib import android_commands
|
| -from pylib import cmd_helper
|
| -from pylib import constants
|
| -from pylib import ports
|
| -from pylib.base import base_test_result
|
| -from pylib.base import shard
|
| -from pylib.gtest import dispatch as gtest_dispatch
|
| -from pylib.gtest import test_runner
|
| -from pylib.utils import report_results
|
| -
|
| -sys.path.insert(0,
|
| - os.path.join(constants.DIR_SOURCE_ROOT, 'build', 'util', 'lib'))
|
| -from common import unittest_util
|
| -
|
| -
|
| -def Dispatch(options):
|
| - """Dispatches all content_browsertests.
|
| -
|
| - Args:
|
| - options: optparse.Options object containing command-line options
|
| - Returns:
|
| - A tuple of (base_test_result.TestRunResults object, exit code).
|
| - Raises:
|
| - Exception: Failed to reset the test server port.
|
| - """
|
| -
|
| - attached_devices = []
|
| - if options.test_device:
|
| - attached_devices = [options.test_device]
|
| - else:
|
| - attached_devices = android_commands.GetAttachedDevices()
|
| -
|
| - if not attached_devices:
|
| - logging.critical('A device must be attached and online.')
|
| - return (base_test_result.TestRunResults(), constants.ERROR_EXIT_CODE)
|
| -
|
| - # Reset the test port allocation. It's important to do it before starting
|
| - # to dispatch any tests.
|
| - if not ports.ResetTestServerPortAllocation():
|
| - raise Exception('Failed to reset test server port.')
|
| -
|
| - test_suite_dir = os.path.join(cmd_helper.OutDirectory.get(),
|
| - options.build_type)
|
| - options.test_suite = os.path.join(test_suite_dir,
|
| - 'apks',
|
| - constants.BROWSERTEST_SUITE_NAME + '.apk')
|
| -
|
| - # Constructs a new TestRunner with the current options.
|
| - def RunnerFactory(device, shard_index):
|
| - return test_runner.TestRunner(
|
| - device,
|
| - options.test_suite,
|
| - options.test_arguments,
|
| - options.timeout,
|
| - options.cleanup_test_files,
|
| - options.tool,
|
| - options.build_type,
|
| - options.webkit,
|
| - options.push_deps,
|
| - constants.BROWSERTEST_TEST_PACKAGE_NAME,
|
| - constants.BROWSERTEST_TEST_ACTIVITY_NAME,
|
| - constants.BROWSERTEST_COMMAND_LINE_FILE)
|
| -
|
| - # Get tests and split them up based on the number of devices.
|
| - all_enabled = gtest_dispatch.GetAllEnabledTests(RunnerFactory,
|
| - attached_devices)
|
| - if options.test_filter:
|
| - all_tests = unittest_util.FilterTestNames(all_enabled,
|
| - options.test_filter)
|
| - else:
|
| - all_tests = _FilterTests(all_enabled)
|
| -
|
| - # Run tests.
|
| - # TODO(nileshagrawal): remove this abnormally long setup timeout once fewer
|
| - # files are pushed to the devices for content_browsertests: crbug.com/138275
|
| - setup_timeout = 20 * 60 # 20 minutes
|
| - test_results, exit_code = shard.ShardAndRunTests(
|
| - RunnerFactory, attached_devices, all_tests, options.build_type,
|
| - setup_timeout=setup_timeout, test_timeout=None,
|
| - num_retries=options.num_retries)
|
| - report_results.LogFull(
|
| - results=test_results,
|
| - test_type='Unit test',
|
| - test_package=constants.BROWSERTEST_SUITE_NAME,
|
| - build_type=options.build_type,
|
| - flakiness_server=options.flakiness_dashboard_server)
|
| -
|
| - return (test_results, exit_code)
|
| -
|
| -
|
| -def _FilterTests(all_enabled_tests):
|
| - """Filters out tests and fixtures starting with PRE_ and MANUAL_."""
|
| - return [t for t in all_enabled_tests if _ShouldRunOnBot(t)]
|
| -
|
| -
|
| -def _ShouldRunOnBot(test):
|
| - fixture, case = test.split('.', 1)
|
| - if _StartsWith(fixture, case, 'PRE_'):
|
| - return False
|
| - if _StartsWith(fixture, case, 'MANUAL_'):
|
| - return False
|
| - return True
|
| -
|
| -
|
| -def _StartsWith(a, b, prefix):
|
| - return a.startswith(prefix) or b.startswith(prefix)
|
|
|