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

Commit c05b034e authored by Paul Duffin's avatar Paul Duffin
Browse files

Separate the collation of mutators from registration

This separates the collation of mutators from the registration of them
to allow the test infrastructure to sort the mutator order to match
that used at runtime.

Bug: 181953909
Test: m nothing
Change-Id: I01a073289d44417f327b0815c09eb1c033d464f2
parent 1d2d42f8
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -69,7 +69,14 @@ func RegisterMutatorsForBazelConversion(ctx *Context, preArchMutators, depsMutat
	mctx.mutators.registerAll(ctx)
}

func registerMutators(ctx *Context, preArch, preDeps, postDeps, finalDeps []RegisterMutatorFunc) {
// collateGloballyRegisteredMutators constructs the list of mutators that have been registered
// with the InitRegistrationContext and will be used at runtime.
func collateGloballyRegisteredMutators() sortableComponents {
	return collateRegisteredMutators(preArch, preDeps, postDeps, finalDeps)
}

// collateRegisteredMutators constructs a single list of mutators from the separate lists.
func collateRegisteredMutators(preArch, preDeps, postDeps, finalDeps []RegisterMutatorFunc) sortableComponents {
	mctx := &registerMutatorsContext{}

	register := func(funcs []RegisterMutatorFunc) {
@@ -89,7 +96,7 @@ func registerMutators(ctx *Context, preArch, preDeps, postDeps, finalDeps []Regi
	mctx.finalPhase = true
	register(finalDeps)

	mctx.mutators.registerAll(ctx)
	return mctx.mutators
}

type registerMutatorsContext struct {
+2 −1
Original line number Diff line number Diff line
@@ -188,7 +188,8 @@ func (ctx *Context) Register() {

	singletons.registerAll(ctx)

	registerMutators(ctx, preArch, preDeps, postDeps, finalDeps)
	mutators := collateGloballyRegisteredMutators()
	mutators.registerAll(ctx)

	ctx.RegisterSingletonType("bazeldeps", SingletonFactoryAdaptor(ctx, BazelSingleton))

+2 −1
Original line number Diff line number Diff line
@@ -141,7 +141,8 @@ func (ctx *TestContext) DepsBp2BuildMutators(f RegisterMutatorFunc) {
}

func (ctx *TestContext) Register() {
	registerMutators(ctx.Context, ctx.preArch, ctx.preDeps, ctx.postDeps, ctx.finalDeps)
	mutators := collateRegisteredMutators(ctx.preArch, ctx.preDeps, ctx.postDeps, ctx.finalDeps)
	mutators.registerAll(ctx.Context)

	ctx.RegisterSingletonType("env", EnvSingleton)
}