Merge "Disable from-text stub build for coverage build" into main

This commit is contained in:
Jihoon Kang 2023-10-19 19:22:33 +00:00 committed by Gerrit Code Review
commit 04803d4767
2 changed files with 38 additions and 1 deletions

View file

@ -2063,8 +2063,15 @@ func (c *config) ApiSurfacesDir(s ApiSurface, version string) string {
version)
}
func (c *config) JavaCoverageEnabled() bool {
return c.IsEnvTrue("EMMA_INSTRUMENT") || c.IsEnvTrue("EMMA_INSTRUMENT_STATIC") || c.IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK")
}
func (c *config) BuildFromTextStub() bool {
return c.buildFromTextStub
// TODO: b/302320354 - Remove the coverage build specific logic once the
// robust solution for handling native properties in from-text stub build
// is implemented.
return c.buildFromTextStub && !c.JavaCoverageEnabled()
}
func (c *config) SetBuildFromTextStub(b bool) {

View file

@ -2599,3 +2599,33 @@ func TestApiLibraryDroidstubsDependency(t *testing.T) {
currentApiTimestampPath,
)
}
func TestDisableFromTextStubForCoverageBuild(t *testing.T) {
result := android.GroupFixturePreparers(
prepareForJavaTest,
PrepareForTestWithJavaSdkLibraryFiles,
PrepareForTestWithJacocoInstrumentation,
FixtureWithLastReleaseApis("foo"),
android.FixtureModifyConfig(func(config android.Config) {
config.SetApiLibraries([]string{"foo"})
config.SetBuildFromTextStub(true)
}),
android.FixtureModifyEnv(func(env map[string]string) {
env["EMMA_INSTRUMENT"] = "true"
}),
).RunTestWithBp(t, `
java_sdk_library {
name: "foo",
srcs: ["A.java"],
}
`)
android.AssertBoolEquals(t, "stub module expected to depend on from-source stub",
true, CheckModuleHasDependency(t, result.TestContext,
apiScopePublic.stubsLibraryModuleName("foo"), "android_common",
apiScopePublic.sourceStubLibraryModuleName("foo")))
android.AssertBoolEquals(t, "stub module expected to not depend on from-text stub",
false, CheckModuleHasDependency(t, result.TestContext,
apiScopePublic.stubsLibraryModuleName("foo"), "android_common",
apiScopePublic.apiLibraryModuleName("foo")))
}