Add preparer for overlay pre-singleton registration

It appears as though this is the first pre-singleton type to actually
be registered with the InitRegistrationContext as it failed due to an
uninitialized map, so this change also fixes that.

Bug: 182885307
Test: m nothing
Change-Id: Ibbf6d0db5f3c2fcc89291a16aa5f16b8b5009bd3
This commit is contained in:
Paul Duffin 2021-03-22 13:41:36 +00:00
parent 97d8b40fec
commit 42da69d784
4 changed files with 10 additions and 4 deletions

View File

@ -263,8 +263,9 @@ type RegistrationContext interface {
// ctx := android.NewTestContext(config) // ctx := android.NewTestContext(config)
// RegisterBuildComponents(ctx) // RegisterBuildComponents(ctx)
var InitRegistrationContext RegistrationContext = &initRegistrationContext{ var InitRegistrationContext RegistrationContext = &initRegistrationContext{
moduleTypes: make(map[string]ModuleFactory), moduleTypes: make(map[string]ModuleFactory),
singletonTypes: make(map[string]SingletonFactory), singletonTypes: make(map[string]SingletonFactory),
preSingletonTypes: make(map[string]SingletonFactory),
} }
// Make sure the TestContext implements RegistrationContext. // Make sure the TestContext implements RegistrationContext.

View File

@ -22,8 +22,11 @@ import (
) )
func init() { func init() {
android.RegisterPreSingletonType("overlay", OverlaySingletonFactory) registerOverlayBuildComponents(android.InitRegistrationContext)
}
func registerOverlayBuildComponents(ctx android.RegistrationContext) {
ctx.RegisterPreSingletonType("overlay", OverlaySingletonFactory)
} }
var androidResourceIgnoreFilenames = []string{ var androidResourceIgnoreFilenames = []string{

View File

@ -71,11 +71,11 @@ var prepareForJavaTest = android.GroupFixturePreparers(
cc.PrepareForTestWithCcBuildComponents, cc.PrepareForTestWithCcBuildComponents,
// Include all the default java modules. // Include all the default java modules.
PrepareForTestWithJavaDefaultModules, PrepareForTestWithJavaDefaultModules,
PrepareForTestWithOverlayBuildComponents,
python.PrepareForTestWithPythonBuildComponents, python.PrepareForTestWithPythonBuildComponents,
android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) { android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) {
ctx.RegisterModuleType("java_plugin", PluginFactory) ctx.RegisterModuleType("java_plugin", PluginFactory)
ctx.RegisterPreSingletonType("overlay", OverlaySingletonFactory)
ctx.RegisterPreSingletonType("sdk_versions", sdkPreSingletonFactory) ctx.RegisterPreSingletonType("sdk_versions", sdkPreSingletonFactory)
}), }),
dexpreopt.PrepareForTestWithDexpreopt, dexpreopt.PrepareForTestWithDexpreopt,

View File

@ -54,6 +54,8 @@ var PrepareForTestWithJavaDefaultModules = android.GroupFixturePreparers(
android.FixtureAddTextFile(defaultJavaDir+"/Android.bp", GatherRequiredDepsForTest()), android.FixtureAddTextFile(defaultJavaDir+"/Android.bp", GatherRequiredDepsForTest()),
) )
var PrepareForTestWithOverlayBuildComponents = android.FixtureRegisterWithContext(registerOverlayBuildComponents)
// Prepare a fixture to use all java module types, mutators and singletons fully. // Prepare a fixture to use all java module types, mutators and singletons fully.
// //
// This should only be used by tests that want to run with as much of the build enabled as possible. // This should only be used by tests that want to run with as much of the build enabled as possible.