Merge "jacoco libs dependency for instrumented libraries" am: 3dca115dda am: 882253d037

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2201682

Change-Id: I56028dbede24a27de8388aa55c53234c7c794472
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Sam Delmerico 2022-09-02 20:26:13 +00:00 committed by Automerger Merge Worker
commit 370f703987
3 changed files with 31 additions and 4 deletions

View file

@ -8846,6 +8846,16 @@ func TestApexJavaCoverage(t *testing.T) {
android.FixtureMergeEnv(map[string]string{
"EMMA_INSTRUMENT": "true",
}),
// need to mock jacocoagent here to satisfy dependency added for
// instrumented libraries at build time
android.FixtureAddFile("jacocoagent/Android.bp", []byte(`
java_library {
name: "jacocoagent",
srcs: ["Test.java"],
system_modules: "none",
sdk_version: "none",
}
`)),
).RunTest(t)
// Make sure jacoco ran on both mylib and mybootclasspathlib

View file

@ -169,6 +169,8 @@ type CommonProperties struct {
Output_params []string
}
// If true, then jacocoagent is automatically added as a libs dependency so that
// r8 will not strip instrumentation classes out of dexed libraries.
Instrument bool `blueprint:"mutated"`
// If true, then the module supports statically including the jacocoagent
// into the library.
@ -787,6 +789,9 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
} else if j.shouldInstrumentStatic(ctx) {
ctx.AddVariationDependencies(nil, staticLibTag, "jacocoagent")
}
if j.shouldInstrument(ctx) {
ctx.AddVariationDependencies(nil, libTag, "jacocoagent")
}
if j.useCompose() {
ctx.AddVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), kotlinPluginTag,

View file

@ -96,10 +96,22 @@ func TestBootclasspathFragmentInconsistentArtConfiguration_ApexMixture(t *testin
}
func TestBootclasspathFragment_Coverage(t *testing.T) {
prepareForTestWithFrameworkCoverage := android.FixtureMergeEnv(map[string]string{
"EMMA_INSTRUMENT": "true",
"EMMA_INSTRUMENT_FRAMEWORK": "true",
})
prepareForTestWithFrameworkCoverage := android.GroupFixturePreparers(
android.FixtureMergeEnv(map[string]string{
"EMMA_INSTRUMENT": "true",
"EMMA_INSTRUMENT_FRAMEWORK": "true",
}),
// need to mock jacocoagent here to satisfy dependency added for
// instrumented libraries at build time
android.FixtureAddFile("jacocoagent/Android.bp", []byte(`
java_library {
name: "jacocoagent",
srcs: ["Test.java"],
system_modules: "none",
sdk_version: "none",
}
`)),
)
prepareWithBp := android.FixtureWithRootAndroidBp(`
bootclasspath_fragment {