aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA Googler <no-reply@google.com>2021-10-28 15:39:06 -0700
committerahumesky <ahumesky@google.com>2021-11-30 21:53:36 -0500
commitb03aadc040f5b74566cfd51c2a18631d1c39dd58 (patch)
tree7dacd9c4d874cb6eb890fd1a96809d830621b9c9
parent033f172aa8e51d17b2e4a2cf4bb8dd5bdcb5de53 (diff)
downloadbazelbuild-rules_android-b03aadc040f5b74566cfd51c2a18631d1c39dd58.tar.gz
Add a test_class attribute to android_instrumentation_test.
Similiar to android_local_test and java_test, test_class is an optional attribute which specifies the test_class to execute. If unspecified, it will be derived based on current java package name and rule name. PiperOrigin-RevId: 406234187
-rw-r--r--rules/acls.bzl7
-rw-r--r--rules/acls/android_instrumentation_derived_test_class_rollout.bzl23
2 files changed, 30 insertions, 0 deletions
diff --git a/rules/acls.bzl b/rules/acls.bzl
index 96dd8e4..ffa1377 100644
--- a/rules/acls.bzl
+++ b/rules/acls.bzl
@@ -67,6 +67,7 @@ load(
)
load("@rules_android//rules/acls:kt_android_library_rollout.bzl", "KT_ANDROID_LIBRARY_FALLBACK", "KT_ANDROID_LIBRARY_ROLLOUT")
load("@rules_android//rules/acls:android_instrumentation_test_manifest_check_rollout.bzl", "ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_FALLBACK", "ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_ROLLOUT")
+load("@rules_android//rules/acls:android_instrumentation_derived_test_class_rollout.bzl", "ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_FALLBACK", "ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_ROLLOUT")
def _in_aar_import_deps_checker(fqn):
return not _matches(fqn, AAR_IMPORT_DEPS_CHECKER_FALLBACK_DICT) and _matches(fqn, AAR_IMPORT_DEPS_CHECKER_ROLLOUT_DICT)
@@ -184,6 +185,9 @@ def _in_kt_android_library_rollout(fqn):
def _in_android_instrumentation_test_manifest_check_rollout(fqn):
return not _matches(fqn, ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_FALLBACK_DICT) and _matches(fqn, ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_ROLLOUT_DICT)
+def _in_android_instrumentation_test_derived_test_class_rollout(fqn):
+ return not _matches(fqn, ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_FALLBACK_DICT) and _matches(fqn, ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_ROLLOUT_DICT)
+
def _make_dict(lst):
"""Do not use this method outside of this file."""
return {t: True for t in lst}
@@ -249,6 +253,8 @@ KT_ANDROID_LIBRARY_ROLLOUT_DICT = _make_dict(KT_ANDROID_LIBRARY_ROLLOUT)
KT_ANDROID_LIBRARY_FALLBACK_DICT = _make_dict(KT_ANDROID_LIBRARY_FALLBACK)
ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_ROLLOUT_DICT = _make_dict(ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_ROLLOUT)
ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_FALLBACK_DICT = _make_dict(ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_FALLBACK)
+ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_ROLLOUT_DICT = _make_dict(ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_ROLLOUT)
+ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_FALLBACK_DICT = _make_dict(ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_FALLBACK)
def _matches(fqn, dct):
# Labels with workspace names ("@workspace//pkg:target") are not supported.
@@ -324,6 +330,7 @@ acls = struct(
in_partial_jetification_targets = _in_partial_jetification_targets,
in_kt_android_library_rollout = _in_kt_android_library_rollout,
in_android_instrumentation_test_manifest_check_rollout = _in_android_instrumentation_test_manifest_check_rollout,
+ in_android_instrumentation_test_derived_test_class_rollout = _in_android_instrumentation_test_derived_test_class_rollout,
)
# Visible for testing
diff --git a/rules/acls/android_instrumentation_derived_test_class_rollout.bzl b/rules/acls/android_instrumentation_derived_test_class_rollout.bzl
new file mode 100644
index 0000000..782beb8
--- /dev/null
+++ b/rules/acls/android_instrumentation_derived_test_class_rollout.bzl
@@ -0,0 +1,23 @@
+# Copyright 2021 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Rollout list for enabling test class derivation in android_instrumentation_test,"""
+
+ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_ROLLOUT = [
+ "//:__subpackages__",
+]
+
+ANDROID_INSTRUMENTATION_TEST_DERIVED_TEST_CLASS_FALLBACK = [
+ "//javatests/notinacl:__subpackages__",
+]