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
This commit is contained in:
@@ -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 := ®isterMutatorsContext{}
|
||||
|
||||
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 {
|
||||
|
@@ -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))
|
||||
|
||||
|
@@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user