aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index ad084013fc..338f878963 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -65,6 +65,7 @@ import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nullable;
/** A base implementation for the "android_local_test" rule. */
public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactory {
@@ -82,8 +83,7 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
// Use the regular Java javacopts. Enforcing android-compatible Java
// (-source 7 -target 7 and no TWR) is unnecessary for robolectric tests
// since they run on a JVM, not an android device.
- JavaTargetAttributes.Builder attributesBuilder =
- getJavaTargetAttributes(ruleContext, javaCommon);
+ JavaTargetAttributes.Builder attributesBuilder = javaCommon.initCommon();
// Create the final merged manifest
ResourceDependencies resourceDependencies =
@@ -351,7 +351,6 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
private void compileResourceJar(
RuleContext ruleContext, ResourceApk resourceApk, Artifact resourceClassJar)
throws InterruptedException, RuleErrorException {
-
if (resourceApk.getResourceJavaClassJar() == null) {
new RClassGeneratorActionBuilder(ruleContext)
.targetAaptVersion(AndroidAaptVersion.chooseTargetAaptVersion(ruleContext))
@@ -435,6 +434,12 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
if (ruleContext.isAttrDefined("$robolectric", LABEL_LIST)) {
depsForRunfiles.addAll(ruleContext.getPrerequisites("$robolectric", Mode.TARGET));
}
+
+ Artifact androidAllJarsPropertiesFile = getAndroidAllJarsPropertiesFile(ruleContext);
+ if (androidAllJarsPropertiesFile != null) {
+ builder.addArtifact(androidAllJarsPropertiesFile);
+ }
+
depsForRunfiles.addAll(ruleContext.getPrerequisites("runtime_deps", Mode.TARGET));
builder.addArtifacts(getRuntimeJarsForTargets(getAndCheckTestSupport(ruleContext)));
@@ -520,12 +525,9 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
/** Get AndroidSemantics */
protected abstract AndroidSemantics createAndroidSemantics();
- /** Get JavaTargetAttributes Builder */
- protected abstract JavaTargetAttributes.Builder getJavaTargetAttributes(
- RuleContext ruleContext, JavaCommon javaCommon);
-
/** Set test and robolectric specific jvm flags */
- protected abstract ImmutableList<String> getJvmFlags(RuleContext ruleContext, String testClass);
+ protected abstract ImmutableList<String> getJvmFlags(RuleContext ruleContext, String testClass)
+ throws RuleErrorException;
/** Return the testrunner main class */
protected abstract String getMainClass(
@@ -536,7 +538,7 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
Artifact instrumentationMetadata,
JavaCompilationArtifacts.Builder javaArtifactsBuilder,
JavaTargetAttributes.Builder attributesBuilder)
- throws InterruptedException;
+ throws InterruptedException, RuleErrorException;
/**
* Add compilation dependencies to the java compilation helper.
@@ -553,4 +555,9 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
/** Get the testrunner from the rule */
protected abstract TransitiveInfoCollection getAndCheckTestSupport(RuleContext ruleContext)
throws RuleErrorException;
+
+ /** Get the android-all jars properties file from the deps */
+ @Nullable
+ protected abstract Artifact getAndroidAllJarsPropertiesFile(RuleContext ruleContext)
+ throws RuleErrorException;
}