From 469a18aae2f4924d4bfd0e76639dc43c55467443 Mon Sep 17 00:00:00 2001 From: Ryan Campbell Date: Mon, 27 Feb 2017 09:01:54 -0800 Subject: [PATCH] Support path exclusion for native coverage. Specify list of paths to exclude from coverage instrumentation. Test: make NATIVE_COVERAGE=true COVERAGE_PATHS=hardware/interfaces COVERAGE_EXCLUDE_PATHS=hardware/interfaces/graphics Bug: 35769817 Change-Id: I3bf10e5e5697d140d6cff73d000768b00aa28ca4 --- android/config.go | 14 ++++++++++++-- android/variable.go | 5 +++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/android/config.go b/android/config.go index b4b0be877..1d8cdba40 100644 --- a/android/config.go +++ b/android/config.go @@ -477,12 +477,22 @@ func (c *deviceConfig) NativeCoverageEnabled() bool { } func (c *deviceConfig) CoverageEnabledForPath(path string) bool { + coverage := false if c.config.ProductVariables.CoveragePaths != nil { for _, prefix := range *c.config.ProductVariables.CoveragePaths { if strings.HasPrefix(path, prefix) { - return true + coverage = true + break } } } - return false + if coverage && c.config.ProductVariables.CoverageExcludePaths != nil { + for _, prefix := range *c.config.ProductVariables.CoverageExcludePaths { + if strings.HasPrefix(path, prefix) { + coverage = false + break + } + } + } + return coverage } diff --git a/android/variable.go b/android/variable.go index 68fa7cd02..c5b957be5 100644 --- a/android/variable.go +++ b/android/variable.go @@ -121,8 +121,9 @@ type productVariables struct { ClangTidy *bool `json:",omitempty"` TidyChecks *string `json:",omitempty"` - NativeCoverage *bool `json:",omitempty"` - CoveragePaths *[]string `json:",omitempty"` + NativeCoverage *bool `json:",omitempty"` + CoveragePaths *[]string `json:",omitempty"` + CoverageExcludePaths *[]string `json:",omitempty"` DevicePrefer32BitExecutables *bool `json:",omitempty"` HostPrefer32BitExecutables *bool `json:",omitempty"`