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

Commit b9e7915f authored by Cole Faust's avatar Cole Faust Committed by Gerrit Code Review
Browse files

Merge "Add tests for configurable PostProcessors" into main

parents 2b5dd203 b93f7fe7
Loading
Loading
Loading
Loading
+41 −1
Original line number Diff line number Diff line
@@ -1009,6 +1009,28 @@ my_module_type {
			},
			expectedError: `variable already set in inherited scope, previous assignment:`,
		},
		{
			name: "Basic string list postprocessor",
			bp: `
my_defaults {
	name: "defaults_a",
	my_string_list: ["a", "b", "c"],
	string_list_postprocessor_add_to_elements: "1",
}
my_defaults {
	name: "defaults_b",
	my_string_list: ["d", "e", "f"],
	string_list_postprocessor_add_to_elements: "2",
}
my_module_type {
	name: "foo",
	defaults: ["defaults_a", "defaults_b"],
}
`,
			provider: selectsTestProvider{
				my_string_list: &[]string{"d2", "e2", "f2", "a1", "b1", "c1"},
			},
		},
	}

	for _, tc := range testCases {
@@ -1161,9 +1183,15 @@ func newSelectsMockModule() Module {
	return m
}

type selectsMockDefaultsProperties struct {
	String_list_postprocessor_add_to_elements string
}

type selectsMockModuleDefaults struct {
	ModuleBase
	DefaultsModuleBase
	myProperties       selectsMockModuleProperties
	defaultsProperties selectsMockDefaultsProperties
}

func (d *selectsMockModuleDefaults) GenerateAndroidBuildActions(ctx ModuleContext) {
@@ -1173,10 +1201,22 @@ func newSelectsMockModuleDefaults() Module {
	module := &selectsMockModuleDefaults{}

	module.AddProperties(
		&selectsMockModuleProperties{},
		&module.myProperties,
		&module.defaultsProperties,
	)

	InitDefaultsModule(module)

	AddLoadHook(module, func(lhc LoadHookContext) {
		if module.defaultsProperties.String_list_postprocessor_add_to_elements != "" {
			module.myProperties.My_string_list.AddPostProcessor(func(x []string) []string {
				for i := range x {
					x[i] = x[i] + module.defaultsProperties.String_list_postprocessor_add_to_elements
				}
				return x
			})
		}
	})

	return module
}