Merge "Prevent dynamically created java_api_contribution from inheriting parent modules' visibility"

This commit is contained in:
Jihoon Kang 2023-02-06 17:31:10 +00:00 committed by Gerrit Code Review
commit 800f64078c
2 changed files with 35 additions and 0 deletions

View file

@ -878,11 +878,13 @@ func (d *Droidstubs) createApiContribution(ctx android.DefaultableHookContext) {
Name *string
Api_surface *string
Api_file *string
Visibility []string
}{}
props.Name = proptools.StringPtr(d.Name() + ".api.contribution")
props.Api_surface = api_surface
props.Api_file = api_file
props.Visibility = []string{"//visibility:override", "//visibility:public"}
ctx.CreateModule(ApiContributionFactory, &props)
}

View file

@ -370,3 +370,36 @@ func TestDroidStubsApiContributionGeneration(t *testing.T) {
ctx.ModuleForTests("foo.api.contribution", "")
}
func TestGeneratedApiContributionVisibilityTest(t *testing.T) {
library_bp := `
java_api_library {
name: "bar",
api_surface: "public",
api_contributions: ["foo.api.contribution"],
}
`
ctx, _ := testJavaWithFS(t, `
droidstubs {
name: "foo",
srcs: ["A/a.java"],
api_surface: "public",
check_api: {
current: {
api_file: "A/current.txt",
removed_api_file: "A/removed.txt",
}
},
visibility: ["//a"],
}
`,
map[string][]byte{
"a/a.java": nil,
"a/current.txt": nil,
"a/removed.txt": nil,
"b/Android.bp": []byte(library_bp),
},
)
ctx.ModuleForTests("bar", "android_common")
}