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
This commit is contained in:
Ryan Campbell 2017-02-27 09:01:54 -08:00
parent 4c46af8943
commit 469a18aae2
2 changed files with 15 additions and 4 deletions

View file

@ -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
}

View file

@ -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"`