OSDN Git Service

Support path exclusion for native coverage.
authorRyan Campbell <ryanjcampbell@google.com>
Mon, 27 Feb 2017 17:09:16 +0000 (09:09 -0800)
committerRyan Campbell <ryanjcampbell@google.com>
Mon, 27 Feb 2017 17:09:16 +0000 (09:09 -0800)
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: I3747fdddb381101b9ebf51909b9686e820148aad

core/binary.mk
core/soong_config.mk

index 44f0e95..05ee0cd 100644 (file)
@@ -61,10 +61,14 @@ my_export_c_include_deps := $(LOCAL_EXPORT_C_INCLUDE_DEPS)
 my_arflags :=
 
 ifneq (,$(strip $(foreach dir,$(subst $(comma),$(space),$(COVERAGE_PATHS)),$(filter $(dir)%,$(LOCAL_PATH)))))
+ifeq (,$(strip $(foreach dir,$(subst $(comma),$(space),$(COVERAGE_EXCLUDE_PATHS)),$(filter $(dir)%,$(LOCAL_PATH)))))
   my_native_coverage := true
 else
   my_native_coverage := false
 endif
+else
+  my_native_coverage := false
+endif
 
 my_allow_undefined_symbols := $(strip $(LOCAL_ALLOW_UNDEFINED_SYMBOLS))
 ifdef SANITIZE_HOST
index c038a32..b1e36e4 100644 (file)
@@ -45,6 +45,7 @@ $(SOONG_VARIABLES): FORCE
        echo ''; \
        echo '    "NativeCoverage": $(if $(filter true,$(NATIVE_COVERAGE)),true,false),'; \
        echo '    "CoveragePaths": [$(if $(COVERAGE_PATHS),"$(subst $(space),"$(comma)",$(subst $(comma),$(space),$(COVERAGE_PATHS)))")],'; \
+       echo '    "CoverageExcludePaths": [$(if $(COVERAGE_EXCLUDE_PATHS),"$(subst $(space),"$(comma)",$(subst $(comma),$(space),$(COVERAGE_EXCLUDE_PATHS)))")],'; \
        echo ''; \
        echo '    "DeviceName": "$(TARGET_DEVICE)",'; \
        echo '    "DeviceArch": "$(TARGET_ARCH)",'; \