Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3694)

Unified Diff: build/android/pylib/browsertests/dispatch.py

Issue 18444004: Makes host driven tests use the common sharder. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/android/pylib/browsertests/dispatch.py
diff --git a/build/android/pylib/browsertests/dispatch.py b/build/android/pylib/browsertests/dispatch.py
index 1c8cfb4e8c7291d717a3c73094ccc04f09fdbff3..3c1364eff9e6bf25a8862e009857d7e9562cdada 100644
--- a/build/android/pylib/browsertests/dispatch.py
+++ b/build/android/pylib/browsertests/dispatch.py
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-"""Dispatches content_browsertests."""
+"""Runs content_browsertests."""
import logging
import os
@@ -11,6 +11,7 @@ import sys
from pylib import android_commands
from pylib import cmd_helper
from pylib import constants
+from pylib import dispatch
from pylib import ports
from pylib.base import base_test_result
from pylib.base import shard
@@ -23,8 +24,8 @@ sys.path.insert(0,
from common import unittest_util
-def Dispatch(options):
- """Dispatches all content_browsertests.
+def RunContentBrowserTests(options):
+ """Runs all content_browsertests.
Args:
options: optparse.Options object containing command-line options
@@ -34,16 +35,6 @@ def Dispatch(options):
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():
@@ -56,7 +47,7 @@ def Dispatch(options):
constants.BROWSERTEST_SUITE_NAME + '.apk')
# Constructs a new TestRunner with the current options.
- def RunnerFactory(device, shard_index):
+ def TestRunnerFactory(device, shard_index):
return test_runner.TestRunner(
device,
options.test_suite,
@@ -71,8 +62,11 @@ def Dispatch(options):
constants.BROWSERTEST_TEST_ACTIVITY_NAME,
constants.BROWSERTEST_COMMAND_LINE_FILE)
+ # TODO(gkanwar): This breaks the abstraction of having dispatch.Dispatch deal
+ # entirely with the devices. Can we do this another way?
+ attached_devices = android_commands.GetAttachedDevices()
# Get tests and split them up based on the number of devices.
- all_enabled = gtest_dispatch.GetAllEnabledTests(RunnerFactory,
+ all_enabled = gtest_dispatch.GetAllEnabledTests(TestRunnerFactory,
attached_devices)
if options.test_filter:
all_tests = unittest_util.FilterTestNames(all_enabled,
@@ -84,18 +78,17 @@ def Dispatch(options):
# 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)
+ results, exit_code = dispatch.Dispatch(options, all_tests, TestRunnerFactory,
+ sharding='distribute',
+ setup_timeout=setup_timeout)
report_results.LogFull(
- results=test_results,
+ results=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)
+ return (results, exit_code)
def _FilterTests(all_enabled_tests):

Powered by Google App Engine
This is Rietveld 408576698