diff --git a/android/soong_config_modules.go b/android/soong_config_modules.go index c0f452396..c1e92b8b8 100644 --- a/android/soong_config_modules.go +++ b/android/soong_config_modules.go @@ -382,15 +382,15 @@ func loadSoongConfigModuleTypeDefinition(ctx LoadHookContext, from string) map[s defer r.Close() mtDef, errs := soongconfig.Parse(r, from) - if ctx.Config().BuildMode == Bp2build { - ctx.Config().Bp2buildSoongConfigDefinitions.AddVars(*mtDef) - } - if len(errs) > 0 { reportErrors(ctx, from, errs...) return (map[string]blueprint.ModuleFactory)(nil) } + if ctx.Config().BuildMode == Bp2build { + ctx.Config().Bp2buildSoongConfigDefinitions.AddVars(*mtDef) + } + globalModuleTypes := ctx.moduleFactories() factories := make(map[string]blueprint.ModuleFactory) diff --git a/bp2build/soong_config_module_type_conversion_test.go b/bp2build/soong_config_module_type_conversion_test.go index a94b2b9f1..7029b93c7 100644 --- a/bp2build/soong_config_module_type_conversion_test.go +++ b/bp2build/soong_config_module_type_conversion_test.go @@ -17,6 +17,7 @@ package bp2build import ( "android/soong/android" "android/soong/cc" + "fmt" "testing" ) @@ -36,6 +37,29 @@ func registerSoongConfigModuleTypes(ctx android.RegistrationContext) { ctx.RegisterModuleType("cc_library", cc.LibraryFactory) } +func TestErrorInBpFileDoesNotPanic(t *testing.T) { + bp := ` +soong_config_module_type { + name: "library_linking_strategy_cc_defaults", + module_type: "cc_defaults", + config_namespace: "ANDROID", + variables: ["library_linking_strategy"], + properties: [ + "shared_libs", + "static_libs", + ], +} +` + + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for library_linking_strategy", + ModuleTypeUnderTest: "cc_binary", + ModuleTypeUnderTestFactory: cc.BinaryFactory, + Blueprint: bp, + ExpectedErr: fmt.Errorf(`unknown variable "library_linking_strategy" in module type "library_linking_strategy_cc_defaults`), + }) +} + func TestSoongConfigModuleType(t *testing.T) { bp := ` soong_config_module_type {