diff options
author | A Googler <no-reply@google.com> | 2021-10-28 15:39:06 -0700 |
---|---|---|
committer | ahumesky <ahumesky@google.com> | 2021-11-30 21:53:36 -0500 |
commit | b03aadc040f5b74566cfd51c2a18631d1c39dd58 (patch) | |
tree | 7dacd9c4d874cb6eb890fd1a96809d830621b9c9 | |
parent | 033f172aa8e51d17b2e4a2cf4bb8dd5bdcb5de53 (diff) | |
download | bazelbuild-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.bzl | 7 | ||||
-rw-r--r-- | rules/acls/android_instrumentation_derived_test_class_rollout.bzl | 23 |
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__", +] |