Include jacoco in the ART boot image if EMMA_INSTRUMENT_FRAMEWORK=true.
Test: aosp_walleye-userdebug boots.
Test: Coverage build boots:
$ lunch aosp_walleye-userdebug
$ cd $ANDROID_BUILD_TOP
$ build/soong/soong_ui.bash --make-mode droid \
SKIP_ABI_CHECKS=true \
TARGET_PRODUCT=aosp_walleye \
TARGET_BUILD_VARIANT=userdebug \
EMMA_INSTRUMENT=true \
NATIVE_COVERAGE=true
$ adb reboot bootloader && fastboot flashall -w
Test: Coverage build with framework coverage boots:
$ lunch aosp_walleye-userdebug
$ cd $ANDROID_BUILD_TOP
$ build/soong/soong_ui.bash --make-mode droid \
SKIP_ABI_CHECKS=true \
TARGET_PRODUCT=aosp_walleye \
TARGET_BUILD_VARIANT=userdebug \
EMMA_INSTRUMENT=true \
EMMA_INSTRUMENT_FRAMEWORK=true \
NATIVE_COVERAGE=true
$ adb reboot bootloader && fastboot flashall -w
Test: Static coverage build with framework coverage boots:
$ lunch aosp_walleye-userdebug
$ cd $ANDROID_BUILD_TOP
$ build/soong/soong_ui.bash --make-mode droid \
SKIP_ABI_CHECKS=true \
TARGET_PRODUCT=aosp_walleye \
TARGET_BUILD_VARIANT=userdebug \
EMMA_INSTRUMENT=true \
EMMA_INSTRUMENT_FRAMEWORK=true \
EMMA_INSTRUMENT_STATIC=true \
NATIVE_COVERAGE=true
$ adb reboot bootloader && fastboot flashall -w
Change-Id: Iaa198b8505aaff36e6685559642ff721637ce55f
diff --git a/java/dexpreopt_config.go b/java/dexpreopt_config.go
index 91e0dfb..76bda61 100644
--- a/java/dexpreopt_config.go
+++ b/java/dexpreopt_config.go
@@ -135,6 +135,10 @@
deviceDir := android.PathForOutput(ctx, ctx.Config().DeviceName())
artModules := global.ArtApexJars
+ // With EMMA_INSTRUMENT_FRAMEWORK=true the Core libraries depend on jacoco.
+ if ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK") {
+ artModules = append(artModules, "jacocoagent")
+ }
frameworkModules := android.RemoveListFromList(global.BootJars,
concat(artModules, getJarsFromApexJarPairs(global.UpdatableBootJars)))