Merge "Swap error before setting to prevent nil error" am: aebab397b3

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2366948

Change-Id: Ifcbf86c07c468dd7c924bc70a37d6fbbe2b9ccca
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2022-12-22 08:45:03 +00:00
committed by Automerger Merge Worker
2 changed files with 28 additions and 4 deletions

View File

@@ -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)

View File

@@ -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 {