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

Unified Diff: build/android/pylib/instrumentation/instrumentation_test_instance.py

Issue 2473783004: [android] Raise an exception when an instr test filter doesn't match a test. (Closed)
Patch Set: rebase Created 4 years, 1 month 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
« no previous file with comments | « build/android/pylib/base/test_exception.py ('k') | build/android/test_runner.pydeps » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/instrumentation/instrumentation_test_instance.py
diff --git a/build/android/pylib/instrumentation/instrumentation_test_instance.py b/build/android/pylib/instrumentation/instrumentation_test_instance.py
index c98686a055c0a170d53a35a8ea79df4e9deec0f8..d393a585abf0f61239f5048b42f6ff15bee77624 100644
--- a/build/android/pylib/instrumentation/instrumentation_test_instance.py
+++ b/build/android/pylib/instrumentation/instrumentation_test_instance.py
@@ -13,6 +13,7 @@ from devil.android import apk_helper
from devil.android import md5sum
from pylib import constants
from pylib.base import base_test_result
+from pylib.base import test_exception
from pylib.base import test_instance
from pylib.constants import host_paths
from pylib.instrumentation import test_result
@@ -52,14 +53,14 @@ _NATIVE_CRASH_RE = re.compile('(process|native) crash', re.IGNORECASE)
_PICKLE_FORMAT_VERSION = 10
-class MissingSizeAnnotationError(Exception):
+class MissingSizeAnnotationError(test_exception.TestException):
def __init__(self, class_name):
super(MissingSizeAnnotationError, self).__init__(class_name +
': Test method is missing required size annotation. Add one of: ' +
', '.join('@' + a for a in _VALID_ANNOTATIONS))
-class ProguardPickleException(Exception):
+class ProguardPickleException(test_exception.TestException):
pass
@@ -352,6 +353,14 @@ def _SaveTestsToPickle(pickle_path, jar_path, tests):
pickle.dump(pickle_data, pickle_file)
+class UnmatchedFilterException(test_exception.TestException):
+ """Raised when a user specifies a filter that doesn't match any tests."""
+
+ def __init__(self, test_filter):
+ super(UnmatchedFilterException, self).__init__(
+ 'Test filter "%s" matched no tests.' % test_filter)
+
+
class InstrumentationTestInstance(test_instance.TestInstance):
def __init__(self, args, isolate_delegate, error_func):
@@ -654,6 +663,8 @@ class InstrumentationTestInstance(test_instance.TestInstance):
tests = GetAllTests(self.test_jar)
filtered_tests = FilterTests(
tests, self._test_filter, self._annotations, self._excluded_annotations)
+ if self._test_filter and not filtered_tests:
+ raise UnmatchedFilterException(self._test_filter)
return self._ParametrizeTestsWithFlags(self._InflateTests(filtered_tests))
# pylint: disable=no-self-use
« no previous file with comments | « build/android/pylib/base/test_exception.py ('k') | build/android/test_runner.pydeps » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698