aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestTest.java19
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/BUILD4
3 files changed, 26 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
index 0ef779b4f2..3d758f1fa9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
@@ -129,6 +129,12 @@ public class AndroidLocalTestBaseRule implements RuleDefinition {
the libraries under test have a <code>minSdkVersion</code> tag in them.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(attr("manifest", LABEL).allowedFileTypes(FileTypeSet.ANY_FILE))
+ /* <!-- #BLAZE_RULE($android_local_test_base).ATTRIBUTE(custom_package) -->
+ Java package in which the R class will be generated. By default the package is inferred
+ from the directory where the BUILD file containing the rule is. If you use this attribute,
+ you will likely need to use <code>test_class</code> as well.
+ <!-- #END_BLAZE_RULE.ATTRIBUTE --> */
+ .add(attr("custom_package", STRING))
.add(
attr("resource_files", LABEL_LIST)
.allowedFileTypes(FileTypeSet.ANY_FILE)
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestTest.java
index 6129129b26..34583b7dea 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestTest.java
@@ -18,6 +18,8 @@ import static com.google.common.truth.Truth.assertThat;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
+import com.google.devtools.build.lib.testutil.MoreAsserts;
+import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -111,6 +113,23 @@ public abstract class AndroidLocalTestTest extends AbstractAndroidLocalTestTestB
assertNoEvents();
}
+ @Test
+ public void testCustomPackage() throws Exception {
+ scratch.file(
+ "a/BUILD",
+ "load('//java/bar:foo.bzl', 'extra_deps')",
+ "android_local_test(name = 'dummyTest',",
+ " srcs = ['test.java'],",
+ " custom_package = 'custom.pkg',",
+ " test_class = 'test',",
+ " deps = extra_deps)");
+ ConfiguredTarget target = getConfiguredTarget("//a:dummyTest");
+ Artifact resourcesClassJar =
+ getImplicitOutputArtifact(target, AndroidRuleClasses.ANDROID_RESOURCES_CLASS_JAR);
+ List<String> args = getGeneratingSpawnActionArgs(resourcesClassJar);
+ MoreAsserts.assertContainsSublist(args, "--packageForR", "custom.pkg");
+ }
+
@Override
protected String getRuleName() {
return "android_local_test";
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/BUILD b/src/test/java/com/google/devtools/build/lib/rules/android/BUILD
index 7f93fb6374..6d23f69c22 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/BUILD
@@ -318,12 +318,10 @@ java_library(
":AbstractAndroidLocalTestTestBase",
"//src/main/java/com/google/devtools/build/lib:android-rules",
"//src/main/java/com/google/devtools/build/lib:build-base",
- "//src/main/java/com/google/devtools/build/lib:java-compilation",
"//src/main/java/com/google/devtools/build/lib:util",
"//src/main/java/com/google/devtools/build/lib/actions",
- "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/test/java/com/google/devtools/build/lib:actions_testutil",
- "//src/test/java/com/google/devtools/build/lib:analysis_testutil",
+ "//src/test/java/com/google/devtools/build/lib:testutil",
"//third_party:guava",
"//third_party:junit4",
"//third_party:truth",