diff options
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", |