Use new flag for emma instrumented build and limit to apps only
Based on existing setup, when EMMA_INSTRUMENT is used on a full
build, all Java modules will be processed with emma instrument
unless otherwise marked in their own Makefiles.
For the purpose of collecting code coverage, emma-instrument
all Java modules aren't that useful, instead, instrumenting all
the app packages is more useful. This change adds a new flag
EMMA_FULL_APP_INSTRUMENT, which can be used with a full build
to instrument all app packages.
Change-Id: Ie143fed49c23402b21f6cccac2ef25741726be45
diff --git a/core/java.mk b/core/java.mk
index 9a4f3a2..4d85601 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -76,6 +76,21 @@
intermediates.COMMON := $(call local-intermediates-dir,COMMON)
# Emma source code coverage
+ifeq ($(EMMA_FULL_APP_INSTRUMENT),true)
+ # doing a full emma instrument here, i.e. all app packages instrumented
+ EMMA_INSTRUMENT := true
+ # do not instrument modules that are not app packages
+ ifneq ($(LOCAL_MODULE_CLASS),APPS)
+ LOCAL_NO_EMMA_INSTRUMENT := true
+ LOCAL_NO_EMMA_COMPILE := true
+ endif
+ # do not instrument modules that are marked tests
+ ifeq ($(LOCAL_MODULE_TAGS),tests)
+ LOCAL_NO_EMMA_INSTRUMENT := true
+ LOCAL_NO_EMMA_COMPILE := true
+ endif
+endif
+
ifneq ($(EMMA_INSTRUMENT),true)
LOCAL_NO_EMMA_INSTRUMENT := true
LOCAL_NO_EMMA_COMPILE := true