| Index: build/android/pylib/instrumentation/dispatch.py
|
| diff --git a/build/android/pylib/instrumentation/dispatch.py b/build/android/pylib/instrumentation/dispatch.py
|
| index 53c9d82c1ee9b1272d9e8e6a89382fec44e693b3..ff4e367ab8ca3cb0931bc326919ec90ad13f9bd1 100644
|
| --- a/build/android/pylib/instrumentation/dispatch.py
|
| +++ b/build/android/pylib/instrumentation/dispatch.py
|
| @@ -10,7 +10,6 @@ import os
|
| from pylib import android_commands
|
| from pylib.base import base_test_result
|
| from pylib.base import shard
|
| -from pylib.uiautomator import test_package as uiautomator_package
|
|
|
| import test_package
|
| import test_runner
|
| @@ -31,74 +30,29 @@ def Dispatch(options):
|
| Raises:
|
| Exception: when there are no attached devices.
|
| """
|
| - is_uiautomator_test = False
|
| - if hasattr(options, 'uiautomator_jar'):
|
| - test_pkg = uiautomator_package.TestPackage(
|
| - options.uiautomator_jar, options.uiautomator_info_jar)
|
| - is_uiautomator_test = True
|
| - else:
|
| - test_pkg = test_package.TestPackage(options.test_apk_path,
|
| - options.test_apk_jar_path)
|
| - # The default annotation for tests which do not have any sizes annotation.
|
| - default_size_annotation = 'SmallTest'
|
| -
|
| - def _GetTestsMissingAnnotation(test_pkg):
|
| - test_size_annotations = frozenset(['Smoke', 'SmallTest', 'MediumTest',
|
| - 'LargeTest', 'EnormousTest', 'FlakyTest',
|
| - 'DisabledTest', 'Manual', 'PerfTest'])
|
| - tests_missing_annotations = []
|
| - for test_method in test_pkg.GetTestMethods():
|
| - annotations = frozenset(test_pkg.GetTestAnnotations(test_method))
|
| - if (annotations.isdisjoint(test_size_annotations) and
|
| - not test_pkg.IsPythonDrivenTest(test_method)):
|
| - tests_missing_annotations.append(test_method)
|
| - return sorted(tests_missing_annotations)
|
| -
|
| - if options.annotation:
|
| - available_tests = test_pkg.GetAnnotatedTests(options.annotation)
|
| - if options.annotation.count(default_size_annotation) > 0:
|
| - tests_missing_annotations = _GetTestsMissingAnnotation(test_pkg)
|
| - if tests_missing_annotations:
|
| - logging.warning('The following tests do not contain any annotation. '
|
| - 'Assuming "%s":\n%s',
|
| - default_size_annotation,
|
| - '\n'.join(tests_missing_annotations))
|
| - available_tests += tests_missing_annotations
|
| - else:
|
| - available_tests = [m for m in test_pkg.GetTestMethods()
|
| - if not test_pkg.IsPythonDrivenTest(m)]
|
| -
|
| - tests = []
|
| - if options.test_filter:
|
| - # |available_tests| are in adb instrument format: package.path.class#test.
|
| - filter_without_hash = options.test_filter.replace('#', '.')
|
| - tests = [t for t in available_tests
|
| - if filter_without_hash in t.replace('#', '.')]
|
| - else:
|
| - tests = available_tests
|
| -
|
| + test_pkg = test_package.TestPackage(options.test_apk_path,
|
| + options.test_apk_jar_path)
|
| + tests = test_pkg._GetAllMatchingTests(
|
| + options.annotations, options.test_filter)
|
| if not tests:
|
| logging.warning('No instrumentation tests to run with current args.')
|
| return base_test_result.TestRunResults()
|
|
|
| - tests *= options.number_of_runs
|
| -
|
| attached_devices = android_commands.GetAttachedDevices()
|
| -
|
| if not attached_devices:
|
| raise Exception('There are no devices online.')
|
| +
|
| if options.device:
|
| + assert options.device in attached_devices
|
| attached_devices = [options.device]
|
|
|
| - logging.info('Will run: %s', str(tests))
|
| -
|
| if len(attached_devices) > 1 and options.wait_for_debugger:
|
| logging.warning('Debugger can not be sharded, using first available device')
|
| attached_devices = attached_devices[:1]
|
|
|
| def TestRunnerFactory(device, shard_index):
|
| return test_runner.TestRunner(
|
| - options, device, shard_index, test_pkg, [], is_uiautomator_test)
|
| + options, device, shard_index, test_pkg, [])
|
|
|
| return shard.ShardAndRunTests(TestRunnerFactory, attached_devices, tests,
|
| options.build_type)
|
|
|