Create (API) bp2build converters for droidstubs

- The converter runs for api_bp2build, not bp2build workspace
- Since droidstubs is an internal module created by java_sdk_library,
  the conversion encompasses the latter as well
- Since droidstubs do not have an api_surface attribute, this conversion
  uses naming convention to infer the api_surface represented by the api
  file e.g. *stubs.source -> publicapi, *stubs.source.system -> systemapi)
- Also adds an SdkIntraCore enum to represent the API surface provided
  by one core module to another

There is also ongoing work to check in java_api_contribution modules in
Soong. Once we have that, we can update this converter to operate on
that module type instead

Test: go test ./bp2build
Change-Id: Ia85828e04c738d9ffcc524856d7c3034ee29bbf9
This commit is contained in:
Spandan Das
2022-11-28 18:48:51 +00:00
parent 067210f70d
commit 0b555e323b
6 changed files with 231 additions and 3 deletions

View File

@@ -304,3 +304,45 @@ func TestDroidstubsWithSdkExtensions(t *testing.T) {
android.AssertStringDoesContain(t, "sdk-extensions-root present", cmdline, "--sdk-extensions-root sdk/extensions")
android.AssertStringDoesContain(t, "sdk-extensions-info present", cmdline, "--sdk-extensions-info sdk/extensions/info.txt")
}
func TestApiSurfaceFromDroidStubsName(t *testing.T) {
testCases := []struct {
desc string
name string
expectedApiSurface string
}{
{
desc: "Default is publicapi",
name: "mydroidstubs",
expectedApiSurface: "publicapi",
},
{
desc: "name contains system substring",
name: "mydroidstubs.system.suffix",
expectedApiSurface: "systemapi",
},
{
desc: "name contains system_server substring",
name: "mydroidstubs.system_server.suffix",
expectedApiSurface: "system-serverapi",
},
{
desc: "name contains module_lib substring",
name: "mydroidstubs.module_lib.suffix",
expectedApiSurface: "module-libapi",
},
{
desc: "name contains test substring",
name: "mydroidstubs.test.suffix",
expectedApiSurface: "testapi",
},
{
desc: "name contains intra.core substring",
name: "mydroidstubs.intra.core.suffix",
expectedApiSurface: "intracoreapi",
},
}
for _, tc := range testCases {
android.AssertStringEquals(t, tc.desc, tc.expectedApiSurface, bazelApiSurfaceName(tc.name))
}
}