diff --git a/android/testing.go b/android/testing.go index 2c243729e..299267831 100644 --- a/android/testing.go +++ b/android/testing.go @@ -75,15 +75,16 @@ var PrepareForTestWithOverrides = FixtureRegisterWithContext(func(ctx Registrati // 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 631e88ff9..5d1be6b47 100644 --- a/android/visibility.go +++ b/android/visibility.go @@ -202,17 +202,14 @@ type ExcludeFromVisibilityEnforcementTag interface { 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 30cdcbf8f..b1471387b 100644 --- a/android/visibility_test.go +++ b/android/visibility_test.go @@ -1143,21 +1143,22 @@ func TestVisibility(t *testing.T) { 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(), ).