Add java.RegisterRequiredBuildComponentsForTest function
Insulate tests that exercise code in the java package from having to register the build components provided by the java package by providing a single function that registers them all. This follows the pattern currently used in the cc and rust packages. This change is in preparation for switching the dex_bootjars singleton from a singleton, which does not require a module definition in order to be instantiated, to a singleton module which does. That will require adding a module definition into java.GatherRequiredDepsForTest() and this change ensures that the required components will have been registered in every test. Bug: 177892522 Test: m nothing Change-Id: I6475db8240894947dd07c89a940a3e4f201aa598
This commit is contained in:
parent
ec7cab81f9
commit
c059c8c9a0
6 changed files with 29 additions and 37 deletions
|
@ -248,6 +248,7 @@ func testApexContext(_ *testing.T, bp string, handlers ...testCustomizer) (*andr
|
|||
|
||||
cc.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
rust.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
java.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
|
||||
ctx.RegisterModuleType("cc_test", cc.TestFactory)
|
||||
ctx.RegisterModuleType("vndk_prebuilt_shared", cc.VndkPrebuiltSharedFactory)
|
||||
|
@ -256,14 +257,6 @@ func testApexContext(_ *testing.T, bp string, handlers ...testCustomizer) (*andr
|
|||
ctx.RegisterModuleType("platform_compat_config", java.PlatformCompatConfigFactory)
|
||||
ctx.RegisterModuleType("sh_binary", sh.ShBinaryFactory)
|
||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||
java.RegisterJavaBuildComponents(ctx)
|
||||
java.RegisterSystemModulesBuildComponents(ctx)
|
||||
java.RegisterAppBuildComponents(ctx)
|
||||
java.RegisterAppImportBuildComponents(ctx)
|
||||
java.RegisterAppSetBuildComponents(ctx)
|
||||
java.RegisterRuntimeResourceOverlayBuildComponents(ctx)
|
||||
java.RegisterSdkLibraryBuildComponents(ctx)
|
||||
java.RegisterPrebuiltApisBuildComponents(ctx)
|
||||
ctx.RegisterSingletonType("apex_keys_text", apexKeysTextFactory)
|
||||
ctx.RegisterModuleType("bpf", bpf.BpfFactory)
|
||||
|
||||
|
@ -5957,10 +5950,7 @@ func testDexpreoptWithApexes(t *testing.T, bp, errmsg string, transformDexpreopt
|
|||
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
||||
android.RegisterPrebuiltMutators(ctx)
|
||||
cc.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
java.RegisterJavaBuildComponents(ctx)
|
||||
java.RegisterSystemModulesBuildComponents(ctx)
|
||||
java.RegisterAppBuildComponents(ctx)
|
||||
java.RegisterDexpreoptBootJarsComponents(ctx)
|
||||
java.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
ctx.PostDepsMutators(android.RegisterOverridePostDepsMutators)
|
||||
ctx.PreDepsMutators(RegisterPreDepsMutators)
|
||||
ctx.PostDepsMutators(RegisterPostDepsMutators)
|
||||
|
@ -6164,9 +6154,7 @@ func testApexPermittedPackagesRules(t *testing.T, errmsg, bp string, apexBootJar
|
|||
ctx.RegisterModuleType("apex_key", ApexKeyFactory)
|
||||
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
||||
cc.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
java.RegisterJavaBuildComponents(ctx)
|
||||
java.RegisterSystemModulesBuildComponents(ctx)
|
||||
java.RegisterDexpreoptBootJarsComponents(ctx)
|
||||
java.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
ctx.PostDepsMutators(android.RegisterOverridePostDepsMutators)
|
||||
ctx.PreDepsMutators(RegisterPreDepsMutators)
|
||||
ctx.PostDepsMutators(RegisterPostDepsMutators)
|
||||
|
|
|
@ -52,7 +52,6 @@ func testDexpreoptBoot(t *testing.T, ruleFile string, expectedInputs, expectedOu
|
|||
dexpreopt.SetTestGlobalConfig(config, dexpreoptConfig)
|
||||
|
||||
ctx := testContext(config)
|
||||
RegisterDexpreoptBootJarsComponents(ctx)
|
||||
run(t, ctx, config)
|
||||
|
||||
dexpreoptBootJars := ctx.SingletonForTests("dex_bootjars")
|
||||
|
|
|
@ -73,21 +73,10 @@ func testConfig(env map[string]string, bp string, fs map[string][]byte) android.
|
|||
func testContext(config android.Config) *android.TestContext {
|
||||
|
||||
ctx := android.NewTestArchContext(config)
|
||||
RegisterJavaBuildComponents(ctx)
|
||||
RegisterAppBuildComponents(ctx)
|
||||
RegisterAppImportBuildComponents(ctx)
|
||||
RegisterAppSetBuildComponents(ctx)
|
||||
RegisterAARBuildComponents(ctx)
|
||||
RegisterGenRuleBuildComponents(ctx)
|
||||
RegisterRuntimeResourceOverlayBuildComponents(ctx)
|
||||
RegisterSystemModulesBuildComponents(ctx)
|
||||
RegisterRequiredBuildComponentsForTest(ctx)
|
||||
ctx.RegisterModuleType("java_plugin", PluginFactory)
|
||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||
ctx.RegisterModuleType("python_binary_host", python.PythonBinaryHostFactory)
|
||||
RegisterDocsBuildComponents(ctx)
|
||||
RegisterStubsBuildComponents(ctx)
|
||||
RegisterPrebuiltApisBuildComponents(ctx)
|
||||
RegisterSdkLibraryBuildComponents(ctx)
|
||||
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
||||
ctx.PreArchMutators(android.RegisterComponentsMutator)
|
||||
|
||||
|
|
|
@ -95,6 +95,29 @@ func prebuiltApisFilesForLibs(apiLevels []string, sdkLibs []string) map[string][
|
|||
return fs
|
||||
}
|
||||
|
||||
// Register build components provided by this package that are needed by tests.
|
||||
//
|
||||
// In particular this must register all the components that are used in the `Android.bp` snippet
|
||||
// returned by GatherRequiredDepsForTest()
|
||||
func RegisterRequiredBuildComponentsForTest(ctx android.RegistrationContext) {
|
||||
RegisterAARBuildComponents(ctx)
|
||||
RegisterAppBuildComponents(ctx)
|
||||
RegisterAppImportBuildComponents(ctx)
|
||||
RegisterAppSetBuildComponents(ctx)
|
||||
RegisterDexpreoptBootJarsComponents(ctx)
|
||||
RegisterDocsBuildComponents(ctx)
|
||||
RegisterGenRuleBuildComponents(ctx)
|
||||
RegisterJavaBuildComponents(ctx)
|
||||
RegisterPrebuiltApisBuildComponents(ctx)
|
||||
RegisterRuntimeResourceOverlayBuildComponents(ctx)
|
||||
RegisterSdkLibraryBuildComponents(ctx)
|
||||
RegisterStubsBuildComponents(ctx)
|
||||
RegisterSystemModulesBuildComponents(ctx)
|
||||
}
|
||||
|
||||
// Gather the module definitions needed by tests that depend upon code from this package.
|
||||
//
|
||||
// Returns an `Android.bp` snippet that defines the modules that are needed by this package.
|
||||
func GatherRequiredDepsForTest() string {
|
||||
var bp string
|
||||
|
||||
|
|
|
@ -107,12 +107,7 @@ func testSdkContext(bp string, fs map[string][]byte, extraOsTypes []android.OsTy
|
|||
ctx.PostDepsMutators(android.RegisterVisibilityRuleEnforcer)
|
||||
|
||||
// from java package
|
||||
java.RegisterJavaBuildComponents(ctx)
|
||||
java.RegisterAppBuildComponents(ctx)
|
||||
java.RegisterSdkLibraryBuildComponents(ctx)
|
||||
java.RegisterPrebuiltApisBuildComponents(ctx)
|
||||
java.RegisterStubsBuildComponents(ctx)
|
||||
java.RegisterSystemModulesBuildComponents(ctx)
|
||||
java.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
|
||||
// from cc package
|
||||
cc.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
|
|
|
@ -58,9 +58,7 @@ func TestMain(m *testing.M) {
|
|||
func testContext(config android.Config) *android.TestContext {
|
||||
|
||||
ctx := android.NewTestArchContext(config)
|
||||
java.RegisterJavaBuildComponents(ctx)
|
||||
java.RegisterAppBuildComponents(ctx)
|
||||
java.RegisterSystemModulesBuildComponents(ctx)
|
||||
java.RegisterRequiredBuildComponentsForTest(ctx)
|
||||
|
||||
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
||||
ctx.PreArchMutators(func(ctx android.RegisterMutatorsContext) {
|
||||
|
|
Loading…
Reference in a new issue