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

Commit 4af20236 authored by Cole Faust's avatar Cole Faust Committed by Automerger Merge Worker
Browse files

Merge "Add support for selects on string lists" into main am: 5d6bcfa9

parents 25115466 5d6bcfa9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2450,6 +2450,8 @@ func (e configurationEvalutor) EvaluateConfiguration(condition proptools.Configu
					return proptools.ConfigurableValueString(v)
				case "bool":
					return proptools.ConfigurableValueBool(v == "true")
				case "string_list":
					return proptools.ConfigurableValueStringList(strings.Split(v, " "))
				default:
					panic("unhandled soong config variable type: " + ty)
				}
+48 −0
Original line number Diff line number Diff line
@@ -1031,6 +1031,54 @@ my_module_type {
				my_string_list: &[]string{"d2", "e2", "f2", "a1", "b1", "c1"},
			},
		},
		{
			name: "string list variables",
			bp: `
my_module_type {
	name: "foo",
	my_string_list: ["a"] + select(soong_config_variable("my_namespace", "my_var"), {
		any @ my_var: my_var,
		default: [],
	}),
}
`,
			vendorVars: map[string]map[string]string{
				"my_namespace": {
					"my_var": "b c",
				},
			},
			vendorVarTypes: map[string]map[string]string{
				"my_namespace": {
					"my_var": "string_list",
				},
			},
			provider: selectsTestProvider{
				my_string_list: &[]string{"a", "b", "c"},
			},
		},
		{
			name: "string list variables don't match string matchers",
			bp: `
my_module_type {
	name: "foo",
	my_string_list: ["a"] + select(soong_config_variable("my_namespace", "my_var"), {
		"foo": ["b"],
		default: [],
	}),
}
`,
			vendorVars: map[string]map[string]string{
				"my_namespace": {
					"my_var": "b c",
				},
			},
			vendorVarTypes: map[string]map[string]string{
				"my_namespace": {
					"my_var": "string_list",
				},
			},
			expectedError: `Expected all branches of a select on condition soong_config_variable\("my_namespace", "my_var"\) to have type string_list, found string`,
		},
	}

	for _, tc := range testCases {