Merge "Introduce product variables to select Java code coverage paths in Soong."
This commit is contained in:
@@ -1029,6 +1029,27 @@ func (c *deviceConfig) SamplingPGO() bool {
|
|||||||
return Bool(c.config.productVariables.SamplingPGO)
|
return Bool(c.config.productVariables.SamplingPGO)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// JavaCoverageEnabledForPath returns whether Java code coverage is enabled for
|
||||||
|
// path. Coverage is enabled by default when the product variable
|
||||||
|
// JavaCoveragePaths is empty. If JavaCoveragePaths is not empty, coverage is
|
||||||
|
// enabled for any path which is part of this variable (and not part of the
|
||||||
|
// JavaCoverageExcludePaths product variable). Value "*" in JavaCoveragePaths
|
||||||
|
// represents any path.
|
||||||
|
func (c *deviceConfig) JavaCoverageEnabledForPath(path string) bool {
|
||||||
|
coverage := false
|
||||||
|
if c.config.productVariables.JavaCoveragePaths == nil ||
|
||||||
|
InList("*", c.config.productVariables.JavaCoveragePaths) ||
|
||||||
|
HasAnyPrefix(path, c.config.productVariables.JavaCoveragePaths) {
|
||||||
|
coverage = true
|
||||||
|
}
|
||||||
|
if coverage && c.config.productVariables.JavaCoverageExcludePaths != nil {
|
||||||
|
if HasAnyPrefix(path, c.config.productVariables.JavaCoverageExcludePaths) {
|
||||||
|
coverage = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return coverage
|
||||||
|
}
|
||||||
|
|
||||||
func (c *config) NativeLineCoverage() bool {
|
func (c *config) NativeLineCoverage() bool {
|
||||||
return Bool(c.productVariables.NativeLineCoverage)
|
return Bool(c.productVariables.NativeLineCoverage)
|
||||||
}
|
}
|
||||||
|
@@ -266,6 +266,9 @@ type productVariables struct {
|
|||||||
|
|
||||||
SamplingPGO *bool `json:",omitempty"`
|
SamplingPGO *bool `json:",omitempty"`
|
||||||
|
|
||||||
|
JavaCoveragePaths []string `json:",omitempty"`
|
||||||
|
JavaCoverageExcludePaths []string `json:",omitempty"`
|
||||||
|
|
||||||
NativeLineCoverage *bool `json:",omitempty"`
|
NativeLineCoverage *bool `json:",omitempty"`
|
||||||
Native_coverage *bool `json:",omitempty"`
|
Native_coverage *bool `json:",omitempty"`
|
||||||
ClangCoverage *bool `json:",omitempty"`
|
ClangCoverage *bool `json:",omitempty"`
|
||||||
|
@@ -601,7 +601,9 @@ type jniLib struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (j *Module) shouldInstrument(ctx android.BaseModuleContext) bool {
|
func (j *Module) shouldInstrument(ctx android.BaseModuleContext) bool {
|
||||||
return j.properties.Instrument && ctx.Config().IsEnvTrue("EMMA_INSTRUMENT")
|
return j.properties.Instrument &&
|
||||||
|
ctx.Config().IsEnvTrue("EMMA_INSTRUMENT") &&
|
||||||
|
ctx.DeviceConfig().JavaCoverageEnabledForPath(ctx.ModuleDir())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (j *Module) shouldInstrumentStatic(ctx android.BaseModuleContext) bool {
|
func (j *Module) shouldInstrumentStatic(ctx android.BaseModuleContext) bool {
|
||||||
|
Reference in New Issue
Block a user