Merge changes I804d3597,I6a25e2f6 into main am: faf7251c7b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2779190 Change-Id: I3c35421afcf6fa733b7b13b1a425b739981b12c8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
143
java/testing.go
143
java/testing.go
@@ -73,10 +73,15 @@ var prepareForTestWithFrameworkDeps = android.GroupFixturePreparers(
|
|||||||
// Needed for various deps defined in GatherRequiredDepsForTest()
|
// Needed for various deps defined in GatherRequiredDepsForTest()
|
||||||
defaultJavaDir + "/a.java": nil,
|
defaultJavaDir + "/a.java": nil,
|
||||||
defaultJavaDir + "/api/current.txt": nil,
|
defaultJavaDir + "/api/current.txt": nil,
|
||||||
|
defaultJavaDir + "/api/removed.txt": nil,
|
||||||
defaultJavaDir + "/api/system-current.txt": nil,
|
defaultJavaDir + "/api/system-current.txt": nil,
|
||||||
|
defaultJavaDir + "/api/system-removed.txt": nil,
|
||||||
defaultJavaDir + "/api/test-current.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-current.txt": nil,
|
||||||
|
defaultJavaDir + "/api/module-lib-removed.txt": nil,
|
||||||
defaultJavaDir + "/api/system-server-current.txt": nil,
|
defaultJavaDir + "/api/system-server-current.txt": nil,
|
||||||
|
defaultJavaDir + "/api/system-server-removed.txt": nil,
|
||||||
|
|
||||||
// Needed for R8 rules on apps
|
// Needed for R8 rules on apps
|
||||||
"build/make/core/proguard.flags": nil,
|
"build/make/core/proguard.flags": nil,
|
||||||
@@ -425,80 +430,96 @@ func gatherRequiredDepsForTest() string {
|
|||||||
`, extra)
|
`, extra)
|
||||||
}
|
}
|
||||||
|
|
||||||
type apiContributionStruct struct {
|
type droidstubsStruct struct {
|
||||||
name string
|
name string
|
||||||
apiSurface string
|
apiSurface string
|
||||||
apiFile string
|
apiFile string
|
||||||
|
removedFile string
|
||||||
}
|
}
|
||||||
|
|
||||||
var publicApiContribution = apiContributionStruct{
|
var publicDroidstubs = droidstubsStruct{
|
||||||
name: "api-stubs-docs-non-updatable.api.contribution",
|
name: "api-stubs-docs-non-updatable",
|
||||||
apiSurface: "public",
|
apiSurface: "public",
|
||||||
apiFile: "api/current.txt",
|
apiFile: "api/current.txt",
|
||||||
|
removedFile: "api/removed.txt",
|
||||||
}
|
}
|
||||||
var systemApiContribution = apiContributionStruct{
|
var systemDroidstubs = droidstubsStruct{
|
||||||
name: "system-api-stubs-docs-non-updatable.api.contribution",
|
name: "system-api-stubs-docs-non-updatable",
|
||||||
apiSurface: "system",
|
apiSurface: "system",
|
||||||
apiFile: "api/system-current.txt",
|
apiFile: "api/system-current.txt",
|
||||||
|
removedFile: "api/system-removed.txt",
|
||||||
}
|
}
|
||||||
var testApiContribution = apiContributionStruct{
|
var testDroidstubs = droidstubsStruct{
|
||||||
name: "test-api-stubs-docs-non-updatable.api.contribution",
|
name: "test-api-stubs-docs-non-updatable",
|
||||||
apiSurface: "test",
|
apiSurface: "test",
|
||||||
apiFile: "api/test-current.txt",
|
apiFile: "api/test-current.txt",
|
||||||
|
removedFile: "api/test-removed.txt",
|
||||||
}
|
}
|
||||||
var moduleLibApiContribution = apiContributionStruct{
|
var moduleLibDroidstubs = droidstubsStruct{
|
||||||
name: "module-lib-api-stubs-docs-non-updatable.api.contribution",
|
name: "module-lib-api-stubs-docs-non-updatable",
|
||||||
apiSurface: "module-lib",
|
apiSurface: "module-lib",
|
||||||
apiFile: "api/module-lib-current.txt",
|
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
|
// This module does not exist but is named this way for consistency
|
||||||
name: "system-server-api-stubs-docs-non-updatable.api.contribution",
|
name: "system-server-api-stubs-docs-non-updatable",
|
||||||
apiSurface: "system-server",
|
apiSurface: "system-server",
|
||||||
apiFile: "api/system-server-current.txt",
|
apiFile: "api/system-server-current.txt",
|
||||||
|
removedFile: "api/system-server-removed.txt",
|
||||||
}
|
}
|
||||||
var apiContributionStructs = []apiContributionStruct{
|
var droidstubsStructs = []droidstubsStruct{
|
||||||
publicApiContribution,
|
publicDroidstubs,
|
||||||
systemApiContribution,
|
systemDroidstubs,
|
||||||
testApiContribution,
|
testDroidstubs,
|
||||||
moduleLibApiContribution,
|
moduleLibDroidstubs,
|
||||||
systemServerApiContribution,
|
systemServerDroidstubs,
|
||||||
}
|
}
|
||||||
|
|
||||||
extraApiLibraryModules := map[string]apiContributionStruct{
|
extraApiLibraryModules := map[string]droidstubsStruct{
|
||||||
"android_stubs_current.from-text": publicApiContribution,
|
"android_stubs_current.from-text": publicDroidstubs,
|
||||||
"android_system_stubs_current.from-text": systemApiContribution,
|
"android_system_stubs_current.from-text": systemDroidstubs,
|
||||||
"android_test_stubs_current.from-text": testApiContribution,
|
"android_test_stubs_current.from-text": testDroidstubs,
|
||||||
"android_module_lib_stubs_current.from-text": moduleLibApiContribution,
|
"android_module_lib_stubs_current.from-text": moduleLibDroidstubs,
|
||||||
"android_module_lib_stubs_current_full.from-text": moduleLibApiContribution,
|
"android_module_lib_stubs_current_full.from-text": moduleLibDroidstubs,
|
||||||
"android_system_server_stubs_current.from-text": systemServerApiContribution,
|
"android_system_server_stubs_current.from-text": systemServerDroidstubs,
|
||||||
"core.current.stubs.from-text": publicApiContribution,
|
"core.current.stubs.from-text": publicDroidstubs,
|
||||||
"legacy.core.platform.api.stubs.from-text": publicApiContribution,
|
"legacy.core.platform.api.stubs.from-text": publicDroidstubs,
|
||||||
"stable.core.platform.api.stubs.from-text": publicApiContribution,
|
"stable.core.platform.api.stubs.from-text": publicDroidstubs,
|
||||||
"core-lambda-stubs.from-text": publicApiContribution,
|
"core-lambda-stubs.from-text": publicDroidstubs,
|
||||||
"android-non-updatable.stubs.from-text": publicApiContribution,
|
"android-non-updatable.stubs.from-text": publicDroidstubs,
|
||||||
"android-non-updatable.stubs.system.from-text": systemApiContribution,
|
"android-non-updatable.stubs.system.from-text": systemDroidstubs,
|
||||||
"android-non-updatable.stubs.test.from-text": testApiContribution,
|
"android-non-updatable.stubs.test.from-text": testDroidstubs,
|
||||||
"android-non-updatable.stubs.module_lib.from-text": moduleLibApiContribution,
|
"android-non-updatable.stubs.module_lib.from-text": moduleLibDroidstubs,
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, apiContribution := range apiContributionStructs {
|
for _, droidstubs := range droidstubsStructs {
|
||||||
bp += fmt.Sprintf(`
|
bp += fmt.Sprintf(`
|
||||||
java_api_contribution {
|
droidstubs {
|
||||||
name: "%s",
|
name: "%s",
|
||||||
api_surface: "%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(`
|
bp += fmt.Sprintf(`
|
||||||
java_api_library {
|
java_api_library {
|
||||||
name: "%s",
|
name: "%s",
|
||||||
api_contributions: ["%s"],
|
api_contributions: ["%s"],
|
||||||
}
|
}
|
||||||
`, libName, apiContribution.name)
|
`, libName, droidstubs.name+".api.contribution")
|
||||||
}
|
}
|
||||||
|
|
||||||
bp += `
|
bp += `
|
||||||
@@ -553,7 +574,7 @@ func gatherRequiredDepsForTest() string {
|
|||||||
return bp
|
return bp
|
||||||
}
|
}
|
||||||
|
|
||||||
func CheckModuleDependencies(t *testing.T, ctx *android.TestContext, name, variant string, expected []string) {
|
func getModuleDependencies(t *testing.T, ctx *android.TestContext, name, variant string) []string {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
module := ctx.ModuleForTests(name, variant).Module()
|
module := ctx.ModuleForTests(name, variant).Module()
|
||||||
deps := []string{}
|
deps := []string{}
|
||||||
@@ -562,11 +583,29 @@ func CheckModuleDependencies(t *testing.T, ctx *android.TestContext, name, varia
|
|||||||
})
|
})
|
||||||
sort.Strings(deps)
|
sort.Strings(deps)
|
||||||
|
|
||||||
|
return deps
|
||||||
|
}
|
||||||
|
|
||||||
|
// CheckModuleDependencies checks if the expected dependencies of the module are
|
||||||
|
// identical to the actual dependencies.
|
||||||
|
func CheckModuleDependencies(t *testing.T, ctx *android.TestContext, name, variant string, expected []string) {
|
||||||
|
deps := getModuleDependencies(t, ctx, name, variant)
|
||||||
|
|
||||||
if actual := deps; !reflect.DeepEqual(expected, actual) {
|
if actual := deps; !reflect.DeepEqual(expected, actual) {
|
||||||
t.Errorf("expected %#q, found %#q", expected, actual)
|
t.Errorf("expected %#q, found %#q", expected, actual)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CheckModuleHasDependency returns true if the module depends on the expected dependency.
|
||||||
|
func CheckModuleHasDependency(t *testing.T, ctx *android.TestContext, name, variant string, expected string) bool {
|
||||||
|
for _, dep := range getModuleDependencies(t, ctx, name, variant) {
|
||||||
|
if dep == expected {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// CheckPlatformBootclasspathModules returns the apex:module pair for the modules depended upon by
|
// CheckPlatformBootclasspathModules returns the apex:module pair for the modules depended upon by
|
||||||
// the platform-bootclasspath module.
|
// the platform-bootclasspath module.
|
||||||
func CheckPlatformBootclasspathModules(t *testing.T, result *android.TestResult, name string, expected []string) {
|
func CheckPlatformBootclasspathModules(t *testing.T, result *android.TestResult, name string, expected []string) {
|
||||||
|
Reference in New Issue
Block a user