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

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

Merge "Add tests for configurable PostProcessors" into main am: b9e7915f

parents aabf4929 b9e7915f
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
}