Simplify preparers now that tests use consistent registration order
It is no longer necessary to use preparers in a specific order now that
the test infrastructure enforces a consistent registration order.
So, this change:
* Sorts preparers alphabetically to make them easier to maintain.
* Creates a single visiblity preparer for all the visibility mutators.
* Adds PrepareForTestWithPackageModule
Bug: 181070625
Bug: 181953909
Test: m nothing
Change-Id: I9e65dd182be664d8d0d5db7ccc0b63fa315129c8
diff --git a/android/testing.go b/android/testing.go
index 2c24372..2992678 100644
--- a/android/testing.go
+++ b/android/testing.go
@@ -75,15 +75,16 @@
// Prepares an integration test with build components from the android package.
var PrepareForIntegrationTestWithAndroid = GroupFixturePreparers(
- // Mutators. Must match order in mutator.go.
+ // Sorted alphabetically as the actual order does not matter as tests automatically enforce the
+ // correct order.
PrepareForTestWithArchMutator,
- PrepareForTestWithDefaults,
PrepareForTestWithComponentsMutator,
- PrepareForTestWithPrebuilts,
- PrepareForTestWithOverrides,
-
- // Modules
+ PrepareForTestWithDefaults,
PrepareForTestWithFilegroup,
+ PrepareForTestWithOverrides,
+ PrepareForTestWithPackageModule,
+ PrepareForTestWithPrebuilts,
+ PrepareForTestWithVisibility,
)
func NewTestArchContext(config Config) *TestContext {
diff --git a/android/visibility.go b/android/visibility.go
index 631e88f..5d1be6b 100644
--- a/android/visibility.go
+++ b/android/visibility.go
@@ -202,17 +202,14 @@
ExcludeFromVisibilityEnforcement()
}
-var PrepareForTestWithVisibilityRuleChecker = FixtureRegisterWithContext(func(ctx RegistrationContext) {
+// The visibility mutators.
+var PrepareForTestWithVisibility = FixtureRegisterWithContext(registerVisibilityMutators)
+
+func registerVisibilityMutators(ctx RegistrationContext) {
ctx.PreArchMutators(RegisterVisibilityRuleChecker)
-})
-
-var PrepareForTestWithVisibilityRuleGatherer = FixtureRegisterWithContext(func(ctx RegistrationContext) {
ctx.PreArchMutators(RegisterVisibilityRuleGatherer)
-})
-
-var PrepareForTestWithVisibilityRuleEnforcer = FixtureRegisterWithContext(func(ctx RegistrationContext) {
ctx.PostDepsMutators(RegisterVisibilityRuleEnforcer)
-})
+}
// The rule checker needs to be registered before defaults expansion to correctly check that
// //visibility:xxx isn't combined with other packages in the same list in any one module.
diff --git a/android/visibility_test.go b/android/visibility_test.go
index 30cdcbf..b147138 100644
--- a/android/visibility_test.go
+++ b/android/visibility_test.go
@@ -1143,21 +1143,22 @@
for _, test := range visibilityTests {
t.Run(test.name, func(t *testing.T) {
result := emptyTestFixtureFactory.Extend(
+ // General preparers in alphabetical order as test infrastructure will enforce correct
+ // registration order.
+ PrepareForTestWithArchMutator,
+ PrepareForTestWithDefaults,
+ PrepareForTestWithOverrides,
+ PrepareForTestWithPackageModule,
+ PrepareForTestWithPrebuilts,
+ PrepareForTestWithVisibility,
+
+ // Additional test specific preparers.
FixtureRegisterWithContext(func(ctx RegistrationContext) {
ctx.RegisterModuleType("mock_library", newMockLibraryModule)
ctx.RegisterModuleType("mock_parent", newMockParentFactory)
ctx.RegisterModuleType("mock_defaults", defaultsFactory)
}),
prepareForTestWithFakePrebuiltModules,
- PrepareForTestWithPackageModule,
- // Order of the following method calls is significant as they register mutators.
- PrepareForTestWithArchMutator,
- PrepareForTestWithPrebuilts,
- PrepareForTestWithOverrides,
- PrepareForTestWithVisibilityRuleChecker,
- PrepareForTestWithDefaults,
- PrepareForTestWithVisibilityRuleGatherer,
- PrepareForTestWithVisibilityRuleEnforcer,
// Add additional files to the mock filesystem
test.fs.AddToFixture(),
).