summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
authorChris Gross <chrisgross@google.com>2020-06-15 16:50:59 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-06-15 16:50:59 +0000
commita7a36e22fbe9906a8f94626cb087518e68a19bbd (patch)
treef83348235be5a3ccac40ac8a5f279bde51c01e11 /java/java.go
parent83b1296457b507078a5c70273e8e3cbfd1f71181 (diff)
parent190fdc0b1ae59fedda33d83d69496f6fd1439e86 (diff)
Merge "Use EMMA_INSTRUMENT_FRAMEWORK for apex framework libs."
Diffstat (limited to 'java/java.go')
-rw-r--r--java/java.go21
1 files changed, 16 insertions, 5 deletions
diff --git a/java/java.go b/java/java.go
index 1cdfbf187..13f9f2fbf 100644
--- a/java/java.go
+++ b/java/java.go
@@ -610,6 +610,21 @@ func (j *Module) shouldInstrumentStatic(ctx android.BaseModuleContext) bool {
ctx.Config().UnbundledBuild())
}
+func (j *Module) shouldInstrumentInApex(ctx android.BaseModuleContext) bool {
+ // Force enable the instrumentation for java code that is built for APEXes ...
+ // except for the jacocoagent itself (because instrumenting jacocoagent using jacocoagent
+ // doesn't make sense) or framework libraries (e.g. libraries found in the InstrumentFrameworkModules list) unless EMMA_INSTRUMENT_FRAMEWORK is true.
+ isJacocoAgent := ctx.ModuleName() == "jacocoagent"
+ if android.DirectlyInAnyApex(ctx, ctx.ModuleName()) && !isJacocoAgent && !j.IsForPlatform() {
+ if !inList(ctx.ModuleName(), config.InstrumentFrameworkModules) {
+ return true
+ } else if ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK") {
+ return true
+ }
+ }
+ return false
+}
+
func (j *Module) sdkVersion() sdkSpec {
return sdkSpecFrom(String(j.deviceProperties.Sdk_version))
}
@@ -1543,11 +1558,7 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
j.headerJarFile = j.implementationJarFile
}
- // Force enable the instrumentation for java code that is built for APEXes ...
- // except for the jacocoagent itself (because instrumenting jacocoagent using jacocoagent
- // doesn't make sense)
- isJacocoAgent := ctx.ModuleName() == "jacocoagent"
- if android.DirectlyInAnyApex(ctx, ctx.ModuleName()) && !isJacocoAgent && !j.IsForPlatform() {
+ if j.shouldInstrumentInApex(ctx) {
j.properties.Instrument = true
}