Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3229998d authored by Paul Duffin's avatar Paul Duffin
Browse files

Dedup registration of Soong config module types

Bug: 264876909
Test: m nothing
Change-Id: I467a2090b32438cbbf88bbb453bb4960757ec37a
parent 939673bf
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -31,12 +31,18 @@ import (
)

func init() {
	RegisterModuleType("soong_config_module_type_import", SoongConfigModuleTypeImportFactory)
	RegisterModuleType("soong_config_module_type", SoongConfigModuleTypeFactory)
	RegisterModuleType("soong_config_string_variable", SoongConfigStringVariableDummyFactory)
	RegisterModuleType("soong_config_bool_variable", SoongConfigBoolVariableDummyFactory)
	RegisterSoongConfigModuleBuildComponents(InitRegistrationContext)
}

func RegisterSoongConfigModuleBuildComponents(ctx RegistrationContext) {
	ctx.RegisterModuleType("soong_config_module_type_import", SoongConfigModuleTypeImportFactory)
	ctx.RegisterModuleType("soong_config_module_type", SoongConfigModuleTypeFactory)
	ctx.RegisterModuleType("soong_config_string_variable", SoongConfigStringVariableDummyFactory)
	ctx.RegisterModuleType("soong_config_bool_variable", SoongConfigBoolVariableDummyFactory)
}

var PrepareForTestWithSoongConfigModuleBuildComponents = FixtureRegisterWithContext(RegisterSoongConfigModuleBuildComponents)

type soongConfigModuleTypeImport struct {
	ModuleBase
	properties soongConfigModuleTypeImportProperties
+11 −24
Original line number Diff line number Diff line
@@ -53,6 +53,11 @@ func soongConfigTestModuleFactory() Module {

func (t soongConfigTestModule) GenerateAndroidBuildActions(ModuleContext) {}

var prepareForSoongConfigTestModule = FixtureRegisterWithContext(func(ctx RegistrationContext) {
	ctx.RegisterModuleType("test_defaults", soongConfigTestDefaultsModuleFactory)
	ctx.RegisterModuleType("test", soongConfigTestModuleFactory)
})

func TestSoongConfigModule(t *testing.T) {
	configBp := `
		soong_config_module_type {
@@ -309,14 +314,8 @@ func TestSoongConfigModule(t *testing.T) {
				result := GroupFixturePreparers(
					tc.preparer,
					PrepareForTestWithDefaults,
					FixtureRegisterWithContext(func(ctx RegistrationContext) {
						ctx.RegisterModuleType("soong_config_module_type_import", SoongConfigModuleTypeImportFactory)
						ctx.RegisterModuleType("soong_config_module_type", SoongConfigModuleTypeFactory)
						ctx.RegisterModuleType("soong_config_string_variable", SoongConfigStringVariableDummyFactory)
						ctx.RegisterModuleType("soong_config_bool_variable", SoongConfigBoolVariableDummyFactory)
						ctx.RegisterModuleType("test_defaults", soongConfigTestDefaultsModuleFactory)
						ctx.RegisterModuleType("test", soongConfigTestModuleFactory)
					}),
					PrepareForTestWithSoongConfigModuleBuildComponents,
					prepareForSoongConfigTestModule,
					fs.AddToFixture(),
					FixtureWithRootAndroidBp(bp),
				).RunTest(t)
@@ -371,14 +370,8 @@ func TestNonExistentPropertyInSoongConfigModule(t *testing.T) {
	GroupFixturePreparers(
		fixtureForVendorVars(map[string]map[string]string{"acme": {"feature1": "1"}}),
		PrepareForTestWithDefaults,
		FixtureRegisterWithContext(func(ctx RegistrationContext) {
			ctx.RegisterModuleType("soong_config_module_type_import", SoongConfigModuleTypeImportFactory)
			ctx.RegisterModuleType("soong_config_module_type", SoongConfigModuleTypeFactory)
			ctx.RegisterModuleType("soong_config_string_variable", SoongConfigStringVariableDummyFactory)
			ctx.RegisterModuleType("soong_config_bool_variable", SoongConfigBoolVariableDummyFactory)
			ctx.RegisterModuleType("test_defaults", soongConfigTestDefaultsModuleFactory)
			ctx.RegisterModuleType("test", soongConfigTestModuleFactory)
		}),
		PrepareForTestWithSoongConfigModuleBuildComponents,
		prepareForSoongConfigTestModule,
		FixtureWithRootAndroidBp(bp),
	).ExtendWithErrorHandler(FixtureExpectsAllErrorsToMatchAPattern([]string{
		// TODO(b/171232169): improve the error message for non-existent properties
@@ -411,14 +404,8 @@ func TestDuplicateStringValueInSoongConfigStringVariable(t *testing.T) {
	GroupFixturePreparers(
		fixtureForVendorVars(map[string]map[string]string{"acme": {"feature1": "1"}}),
		PrepareForTestWithDefaults,
		FixtureRegisterWithContext(func(ctx RegistrationContext) {
			ctx.RegisterModuleType("soong_config_module_type_import", SoongConfigModuleTypeImportFactory)
			ctx.RegisterModuleType("soong_config_module_type", SoongConfigModuleTypeFactory)
			ctx.RegisterModuleType("soong_config_string_variable", SoongConfigStringVariableDummyFactory)
			ctx.RegisterModuleType("soong_config_bool_variable", SoongConfigBoolVariableDummyFactory)
			ctx.RegisterModuleType("test_defaults", soongConfigTestDefaultsModuleFactory)
			ctx.RegisterModuleType("test", soongConfigTestModuleFactory)
		}),
		PrepareForTestWithSoongConfigModuleBuildComponents,
		prepareForSoongConfigTestModule,
		FixtureWithRootAndroidBp(bp),
	).ExtendWithErrorHandler(FixtureExpectsAllErrorsToMatchAPattern([]string{
		// TODO(b/171232169): improve the error message for non-existent properties
+1 −4
Original line number Diff line number Diff line
@@ -29,10 +29,7 @@ func runSoongConfigModuleTypeTest(t *testing.T, tc Bp2buildTestCase) {
func registerSoongConfigModuleTypes(ctx android.RegistrationContext) {
	cc.RegisterCCBuildComponents(ctx)

	ctx.RegisterModuleType("soong_config_module_type_import", android.SoongConfigModuleTypeImportFactory)
	ctx.RegisterModuleType("soong_config_module_type", android.SoongConfigModuleTypeFactory)
	ctx.RegisterModuleType("soong_config_string_variable", android.SoongConfigStringVariableDummyFactory)
	ctx.RegisterModuleType("soong_config_bool_variable", android.SoongConfigBoolVariableDummyFactory)
	android.RegisterSoongConfigModuleBuildComponents(ctx)

	ctx.RegisterModuleType("cc_library", cc.LibraryFactory)
}