diff options
author | 2017-08-09 23:39:13 +0200 | |
---|---|---|
committer | 2017-08-10 13:48:03 +0200 | |
commit | 8d707857c0547cb37a57757366bd28da10ab65db (patch) | |
tree | cc893829d634f5336f2301960444b4149fcdd899 /src/main/java/com/google/devtools/build/lib/rules/android | |
parent | 44b71aae7afa1a1d01a7d2e0cb7549d0cae3b5d2 (diff) |
Automated rollback of commit 8adcf839c5c42defaa2fabedfb0208e4ce97ac95.
*** Reason for rollback ***
RELNOTES: None
PiperOrigin-RevId: 164775289
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android')
4 files changed, 32 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java index 14d22abaa2..fc2b6a69c8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java @@ -837,6 +837,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { ApkProvider.create( zipAlignedApk, unsignedApk, + androidCommon.getInstrumentedJar(), applicationManifest.getManifest(), debugKeystore)) .addProvider(AndroidPreDexJarProvider.class, AndroidPreDexJarProvider.create(jarToDex)) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java index 154aabcb76..96d6acea15 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java @@ -447,11 +447,12 @@ public class AndroidCommon { } else { Artifact outputDepsProto = javacHelper.createOutputDepsProtoArtifact(resourceClassJar, javaArtifactsBuilder); - javacHelper.createCompileAction( + javacHelper.createCompileActionWithInstrumentation( resourceClassJar, null /* manifestProtoOutput */, null /* genSourceJar */, - outputDepsProto); + outputDepsProto, + javaArtifactsBuilder); } } else { // Otherwise, it should have been the AndroidRuleClasses.ANDROID_RESOURCES_CLASS_JAR. @@ -689,7 +690,8 @@ public class AndroidCommon { helper.createSourceJarAction(srcJar, genSourceJar); outputDepsProto = helper.createOutputDepsProtoArtifact(classJar, javaArtifactsBuilder); - helper.createCompileAction(classJar, manifestProtoOutput, genSourceJar, outputDepsProto); + helper.createCompileActionWithInstrumentation(classJar, manifestProtoOutput, genSourceJar, + outputDepsProto, javaArtifactsBuilder); if (isBinary) { generatedExtensionRegistryProvider = @@ -853,10 +855,6 @@ public class AndroidCommon { return javaCommon.getJavacOpts(); } - public Artifact getClassJar() { - return classJar; - } - public Artifact getGenClassJar() { return genClassJar; } @@ -882,6 +880,10 @@ public class AndroidCommon { return jarsProducedForRuntime; } + public Artifact getInstrumentedJar() { + return javaCommon.getJavaCompilationArtifacts().getInstrumentedJar(); + } + public NestedSet<Artifact> getTransitiveNeverLinkLibraries() { return transitiveNeverlinkLibraries; } 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 6ceafcc2a9..fd66a26dfc 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 @@ -125,6 +125,8 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor JavaCompilationHelper helper = getJavaCompilationHelperWithDependencies(ruleContext, javaSemantics, javaCommon, attributesBuilder); + Artifact instrumentationMetadata = + helper.createInstrumentationMetadata(classJar, javaArtifactsBuilder); Artifact executable = ruleContext.createOutputArtifact(); // the artifact for the rule itself NestedSetBuilder<Artifact> filesToBuildBuilder = NestedSetBuilder.<Artifact>stableOrder().add(classJar).add(executable); @@ -144,7 +146,7 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor javaSemantics, helper, executable, - null, + instrumentationMetadata, javaArtifactsBuilder, attributesBuilder); @@ -168,7 +170,11 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor helper.createOutputDepsProtoArtifact(classJar, javaArtifactsBuilder); javaRuleOutputJarsProviderBuilder.setJdeps(outputDepsProtoArtifact); helper.createCompileAction( - classJar, manifestProtoOutput, genSourceJar, outputDepsProtoArtifact); + classJar, + manifestProtoOutput, + genSourceJar, + outputDepsProtoArtifact, + instrumentationMetadata); helper.createSourceJarAction(srcJar, genSourceJar); setUpJavaCommon(javaCommon, helper, javaArtifactsBuilder.build()); @@ -181,7 +187,6 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor getJvmFlags(ruleContext, testClass), executable, mainClass, - "com.google.testing.junit.runner.GoogleTestRunner", JavaCommon.getJavaBinSubstitution(ruleContext, launcher)); Artifact deployJar = @@ -409,6 +414,13 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor builder.addTargets(depsForRunfiles, RunfilesProvider.DEFAULT_RUNFILES); builder.addTransitiveArtifacts(transitiveAarArtifacts); + if (ruleContext.getConfiguration().isCodeCoverageEnabled()) { + Artifact instrumentedJar = javaCommon.getJavaCompilationArtifacts().getInstrumentedJar(); + if (instrumentedJar != null) { + builder.addArtifact(instrumentedJar); + } + } + builder.addArtifacts(javaCommon.getRuntimeClasspath()); // Add the JDK files if it comes from P4 (see java_stub_template.txt). diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java index 70676b701d..d265fd3160 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java @@ -17,6 +17,7 @@ import com.google.auto.value.AutoValue; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; +import javax.annotation.Nullable; /** A provider for targets that produce an apk file. */ @AutoValue @@ -26,9 +27,10 @@ public abstract class ApkProvider implements TransitiveInfoProvider { public static ApkProvider create( Artifact apk, Artifact unsignedApk, + @Nullable Artifact coverageMetdata, Artifact mergedManifest, Artifact keystore) { - return new AutoValue_ApkProvider(apk, unsignedApk, mergedManifest, keystore); + return new AutoValue_ApkProvider(apk, unsignedApk, coverageMetdata, mergedManifest, keystore); } /** Returns the APK file built in the transitive closure. */ @@ -37,6 +39,10 @@ public abstract class ApkProvider implements TransitiveInfoProvider { /** Returns the unsigned APK file built in the transitive closure. */ public abstract Artifact getUnsignedApk(); + /** Returns the coverage metadata artifacts generated in the transitive closure. */ + @Nullable + public abstract Artifact getCoverageMetadata(); + /** Returns the merged manifest. */ public abstract Artifact getMergedManifest(); |