diff --git a/android/config.go b/android/config.go index 0fe4a0c68..e1d597a0b 100644 --- a/android/config.go +++ b/android/config.go @@ -1041,15 +1041,20 @@ func (c *deviceConfig) ClangCoverageEnabled() bool { return Bool(c.config.productVariables.ClangCoverage) } -func (c *deviceConfig) CoverageEnabledForPath(path string) bool { +// NativeCoverageEnabledForPath returns whether (GCOV- or Clang-based) native +// code coverage is enabled for path. By default, coverage is not enabled for a +// given path unless it is part of the NativeCoveragePaths product variable (and +// not part of the NativeCoverageExcludePaths product variable). Value "*" in +// NativeCoveragePaths represents any path. +func (c *deviceConfig) NativeCoverageEnabledForPath(path string) bool { coverage := false - if c.config.productVariables.CoveragePaths != nil { - if InList("*", c.config.productVariables.CoveragePaths) || HasAnyPrefix(path, c.config.productVariables.CoveragePaths) { + if c.config.productVariables.NativeCoveragePaths != nil { + if InList("*", c.config.productVariables.NativeCoveragePaths) || HasAnyPrefix(path, c.config.productVariables.NativeCoveragePaths) { coverage = true } } - if coverage && c.config.productVariables.CoverageExcludePaths != nil { - if HasAnyPrefix(path, c.config.productVariables.CoverageExcludePaths) { + if coverage && c.config.productVariables.NativeCoverageExcludePaths != nil { + if HasAnyPrefix(path, c.config.productVariables.NativeCoverageExcludePaths) { coverage = false } } diff --git a/android/variable.go b/android/variable.go index b69d4254d..4440ceeed 100644 --- a/android/variable.go +++ b/android/variable.go @@ -266,11 +266,11 @@ type productVariables struct { SamplingPGO *bool `json:",omitempty"` - NativeLineCoverage *bool `json:",omitempty"` - Native_coverage *bool `json:",omitempty"` - ClangCoverage *bool `json:",omitempty"` - CoveragePaths []string `json:",omitempty"` - CoverageExcludePaths []string `json:",omitempty"` + NativeLineCoverage *bool `json:",omitempty"` + Native_coverage *bool `json:",omitempty"` + ClangCoverage *bool `json:",omitempty"` + NativeCoveragePaths []string `json:",omitempty"` + NativeCoverageExcludePaths []string `json:",omitempty"` SanitizeHost []string `json:",omitempty"` SanitizeDevice []string `json:",omitempty"` diff --git a/cc/coverage.go b/cc/coverage.go index f885fcbc2..1a559a9a5 100644 --- a/cc/coverage.go +++ b/cc/coverage.go @@ -180,7 +180,7 @@ func SetCoverageProperties(ctx android.BaseModuleContext, properties CoveragePro if needCoverageVariant { // Coverage variant is actually built with coverage if enabled for its module path - needCoverageBuild = ctx.DeviceConfig().CoverageEnabledForPath(ctx.ModuleDir()) + needCoverageBuild = ctx.DeviceConfig().NativeCoverageEnabledForPath(ctx.ModuleDir()) } } diff --git a/rust/rust_test.go b/rust/rust_test.go index d658ee201..fe21e3a39 100644 --- a/rust/rust_test.go +++ b/rust/rust_test.go @@ -89,7 +89,7 @@ func testRustContext(t *testing.T, bp string, coverage bool) *android.TestContex if coverage { config.TestProductVariables.Native_coverage = proptools.BoolPtr(true) - config.TestProductVariables.CoveragePaths = []string{"*"} + config.TestProductVariables.NativeCoveragePaths = []string{"*"} } t.Helper()