Support registering hard coded pre arch mutators
Some pre arch mutators are hard coded into mutator.go and so could not
share code for registering those mutators between tests and runtime.
This change adds a new HardCodedPreArchMutators(RegisterMutatorFunc)
method to RegistrationContext which allows hard coded mutators to be
registered alongside other build components during init() and testing.
The method is treated as a noop on the InitRegistrationContext and
behaves just like the PreArchMutators(RegisterMutatorFunc) method on
the TestingContext.
Bug: 146540677
Test: m nothing
Change-Id: I6f8b1e2d54d9dc4e86f951ced61d1ee7b0fe4b2e
diff --git a/android/register.go b/android/register.go
index b48d3d1..d5aa1a5 100644
--- a/android/register.go
+++ b/android/register.go
@@ -127,6 +127,12 @@
RegisterModuleType(name string, factory ModuleFactory)
RegisterSingletonType(name string, factory SingletonFactory)
PreArchMutators(f RegisterMutatorFunc)
+
+ // Register pre arch mutators that are hard coded into mutator.go.
+ //
+ // Only registers mutators for testing, is a noop on the InitRegistrationContext.
+ HardCodedPreArchMutators(f RegisterMutatorFunc)
+
PreDepsMutators(f RegisterMutatorFunc)
PostDepsMutators(f RegisterMutatorFunc)
}
@@ -180,6 +186,10 @@
PreArchMutators(f)
}
+func (ctx *initRegistrationContext) HardCodedPreArchMutators(f RegisterMutatorFunc) {
+ // Nothing to do as the mutators are hard code in preArch in mutator.go
+}
+
func (ctx *initRegistrationContext) PreDepsMutators(f RegisterMutatorFunc) {
PreDepsMutators(f)
}
diff --git a/android/testing.go b/android/testing.go
index 6663728..c07af7f 100644
--- a/android/testing.go
+++ b/android/testing.go
@@ -59,6 +59,11 @@
ctx.preArch = append(ctx.preArch, f)
}
+func (ctx *TestContext) HardCodedPreArchMutators(f RegisterMutatorFunc) {
+ // Register mutator function as normal for testing.
+ ctx.PreArchMutators(f)
+}
+
func (ctx *TestContext) PreDepsMutators(f RegisterMutatorFunc) {
ctx.preDeps = append(ctx.preDeps, f)
}