Add droidstub modules for Soong java testing
Previously, only the essential java_api_library and java_api_contribution modules were being added to the template bp file for testing purpose. However, since the child change aosp/2640275 adds droidstubs that generates the java_api_contribution as the dependency of the java_api_library modules, not adding the droidstubs modules to the template bp file will lead to missing dependency errors in Soong test cases that tests the from-text generation & java_api_library functionality. To prevent this, this change adds the droidstubs modules instead of the auto generated java_api_contribution modules to the template bp file to more closely align with the real life behavior. Test: m nothing Bug: 288624417 Change-Id: I6a25e2f6c5f1281e96eca15aa5eec7417635df3f
This commit is contained in:
123
java/testing.go
123
java/testing.go
@@ -73,10 +73,15 @@ var prepareForTestWithFrameworkDeps = android.GroupFixturePreparers(
|
||||
// Needed for various deps defined in GatherRequiredDepsForTest()
|
||||
defaultJavaDir + "/a.java": nil,
|
||||
defaultJavaDir + "/api/current.txt": nil,
|
||||
defaultJavaDir + "/api/removed.txt": nil,
|
||||
defaultJavaDir + "/api/system-current.txt": nil,
|
||||
defaultJavaDir + "/api/system-removed.txt": nil,
|
||||
defaultJavaDir + "/api/test-current.txt": nil,
|
||||
defaultJavaDir + "/api/test-removed.txt": nil,
|
||||
defaultJavaDir + "/api/module-lib-current.txt": nil,
|
||||
defaultJavaDir + "/api/module-lib-removed.txt": nil,
|
||||
defaultJavaDir + "/api/system-server-current.txt": nil,
|
||||
defaultJavaDir + "/api/system-server-removed.txt": nil,
|
||||
|
||||
// Needed for R8 rules on apps
|
||||
"build/make/core/proguard.flags": nil,
|
||||
@@ -425,80 +430,96 @@ func gatherRequiredDepsForTest() string {
|
||||
`, extra)
|
||||
}
|
||||
|
||||
type apiContributionStruct struct {
|
||||
name string
|
||||
apiSurface string
|
||||
apiFile string
|
||||
type droidstubsStruct struct {
|
||||
name string
|
||||
apiSurface string
|
||||
apiFile string
|
||||
removedFile string
|
||||
}
|
||||
|
||||
var publicApiContribution = apiContributionStruct{
|
||||
name: "api-stubs-docs-non-updatable.api.contribution",
|
||||
apiSurface: "public",
|
||||
apiFile: "api/current.txt",
|
||||
var publicDroidstubs = droidstubsStruct{
|
||||
name: "api-stubs-docs-non-updatable",
|
||||
apiSurface: "public",
|
||||
apiFile: "api/current.txt",
|
||||
removedFile: "api/removed.txt",
|
||||
}
|
||||
var systemApiContribution = apiContributionStruct{
|
||||
name: "system-api-stubs-docs-non-updatable.api.contribution",
|
||||
apiSurface: "system",
|
||||
apiFile: "api/system-current.txt",
|
||||
var systemDroidstubs = droidstubsStruct{
|
||||
name: "system-api-stubs-docs-non-updatable",
|
||||
apiSurface: "system",
|
||||
apiFile: "api/system-current.txt",
|
||||
removedFile: "api/system-removed.txt",
|
||||
}
|
||||
var testApiContribution = apiContributionStruct{
|
||||
name: "test-api-stubs-docs-non-updatable.api.contribution",
|
||||
apiSurface: "test",
|
||||
apiFile: "api/test-current.txt",
|
||||
var testDroidstubs = droidstubsStruct{
|
||||
name: "test-api-stubs-docs-non-updatable",
|
||||
apiSurface: "test",
|
||||
apiFile: "api/test-current.txt",
|
||||
removedFile: "api/test-removed.txt",
|
||||
}
|
||||
var moduleLibApiContribution = apiContributionStruct{
|
||||
name: "module-lib-api-stubs-docs-non-updatable.api.contribution",
|
||||
apiSurface: "module-lib",
|
||||
apiFile: "api/module-lib-current.txt",
|
||||
var moduleLibDroidstubs = droidstubsStruct{
|
||||
name: "module-lib-api-stubs-docs-non-updatable",
|
||||
apiSurface: "module-lib",
|
||||
apiFile: "api/module-lib-current.txt",
|
||||
removedFile: "api/module-lib-removed.txt",
|
||||
}
|
||||
var systemServerApiContribution = apiContributionStruct{
|
||||
var systemServerDroidstubs = droidstubsStruct{
|
||||
// This module does not exist but is named this way for consistency
|
||||
name: "system-server-api-stubs-docs-non-updatable.api.contribution",
|
||||
apiSurface: "system-server",
|
||||
apiFile: "api/system-server-current.txt",
|
||||
name: "system-server-api-stubs-docs-non-updatable",
|
||||
apiSurface: "system-server",
|
||||
apiFile: "api/system-server-current.txt",
|
||||
removedFile: "api/system-server-removed.txt",
|
||||
}
|
||||
var apiContributionStructs = []apiContributionStruct{
|
||||
publicApiContribution,
|
||||
systemApiContribution,
|
||||
testApiContribution,
|
||||
moduleLibApiContribution,
|
||||
systemServerApiContribution,
|
||||
var droidstubsStructs = []droidstubsStruct{
|
||||
publicDroidstubs,
|
||||
systemDroidstubs,
|
||||
testDroidstubs,
|
||||
moduleLibDroidstubs,
|
||||
systemServerDroidstubs,
|
||||
}
|
||||
|
||||
extraApiLibraryModules := map[string]apiContributionStruct{
|
||||
"android_stubs_current.from-text": publicApiContribution,
|
||||
"android_system_stubs_current.from-text": systemApiContribution,
|
||||
"android_test_stubs_current.from-text": testApiContribution,
|
||||
"android_module_lib_stubs_current.from-text": moduleLibApiContribution,
|
||||
"android_module_lib_stubs_current_full.from-text": moduleLibApiContribution,
|
||||
"android_system_server_stubs_current.from-text": systemServerApiContribution,
|
||||
"core.current.stubs.from-text": publicApiContribution,
|
||||
"legacy.core.platform.api.stubs.from-text": publicApiContribution,
|
||||
"stable.core.platform.api.stubs.from-text": publicApiContribution,
|
||||
"core-lambda-stubs.from-text": publicApiContribution,
|
||||
"android-non-updatable.stubs.from-text": publicApiContribution,
|
||||
"android-non-updatable.stubs.system.from-text": systemApiContribution,
|
||||
"android-non-updatable.stubs.test.from-text": testApiContribution,
|
||||
"android-non-updatable.stubs.module_lib.from-text": moduleLibApiContribution,
|
||||
extraApiLibraryModules := map[string]droidstubsStruct{
|
||||
"android_stubs_current.from-text": publicDroidstubs,
|
||||
"android_system_stubs_current.from-text": systemDroidstubs,
|
||||
"android_test_stubs_current.from-text": testDroidstubs,
|
||||
"android_module_lib_stubs_current.from-text": moduleLibDroidstubs,
|
||||
"android_module_lib_stubs_current_full.from-text": moduleLibDroidstubs,
|
||||
"android_system_server_stubs_current.from-text": systemServerDroidstubs,
|
||||
"core.current.stubs.from-text": publicDroidstubs,
|
||||
"legacy.core.platform.api.stubs.from-text": publicDroidstubs,
|
||||
"stable.core.platform.api.stubs.from-text": publicDroidstubs,
|
||||
"core-lambda-stubs.from-text": publicDroidstubs,
|
||||
"android-non-updatable.stubs.from-text": publicDroidstubs,
|
||||
"android-non-updatable.stubs.system.from-text": systemDroidstubs,
|
||||
"android-non-updatable.stubs.test.from-text": testDroidstubs,
|
||||
"android-non-updatable.stubs.module_lib.from-text": moduleLibDroidstubs,
|
||||
}
|
||||
|
||||
for _, apiContribution := range apiContributionStructs {
|
||||
for _, droidstubs := range droidstubsStructs {
|
||||
bp += fmt.Sprintf(`
|
||||
java_api_contribution {
|
||||
droidstubs {
|
||||
name: "%s",
|
||||
api_surface: "%s",
|
||||
api_file: "%s",
|
||||
check_api: {
|
||||
current: {
|
||||
api_file: "%s",
|
||||
removed_api_file: "%s",
|
||||
}
|
||||
}
|
||||
}
|
||||
`, apiContribution.name, apiContribution.apiSurface, apiContribution.apiFile)
|
||||
`,
|
||||
droidstubs.name,
|
||||
droidstubs.apiSurface,
|
||||
droidstubs.apiFile,
|
||||
droidstubs.removedFile,
|
||||
)
|
||||
}
|
||||
|
||||
for libName, apiContribution := range extraApiLibraryModules {
|
||||
for libName, droidstubs := range extraApiLibraryModules {
|
||||
bp += fmt.Sprintf(`
|
||||
java_api_library {
|
||||
name: "%s",
|
||||
api_contributions: ["%s"],
|
||||
}
|
||||
`, libName, apiContribution.name)
|
||||
`, libName, droidstubs.name+".api.contribution")
|
||||
}
|
||||
|
||||
bp += `
|
||||
|
Reference in New Issue
Block a user