Merge "Simplify preparers now that tests use consistent registration order"

This commit is contained in:
Paul Duffin
2021-03-09 23:00:57 +00:00
committed by Gerrit Code Review
3 changed files with 22 additions and 23 deletions

View File

@@ -75,15 +75,16 @@ var PrepareForTestWithOverrides = FixtureRegisterWithContext(func(ctx Registrati
// Prepares an integration test with build components from the android package. // Prepares an integration test with build components from the android package.
var PrepareForIntegrationTestWithAndroid = GroupFixturePreparers( 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, PrepareForTestWithArchMutator,
PrepareForTestWithDefaults,
PrepareForTestWithComponentsMutator, PrepareForTestWithComponentsMutator,
PrepareForTestWithPrebuilts, PrepareForTestWithDefaults,
PrepareForTestWithOverrides,
// Modules
PrepareForTestWithFilegroup, PrepareForTestWithFilegroup,
PrepareForTestWithOverrides,
PrepareForTestWithPackageModule,
PrepareForTestWithPrebuilts,
PrepareForTestWithVisibility,
) )
func NewTestArchContext(config Config) *TestContext { func NewTestArchContext(config Config) *TestContext {

View File

@@ -202,17 +202,14 @@ type ExcludeFromVisibilityEnforcementTag interface {
ExcludeFromVisibilityEnforcement() ExcludeFromVisibilityEnforcement()
} }
var PrepareForTestWithVisibilityRuleChecker = FixtureRegisterWithContext(func(ctx RegistrationContext) { // The visibility mutators.
var PrepareForTestWithVisibility = FixtureRegisterWithContext(registerVisibilityMutators)
func registerVisibilityMutators(ctx RegistrationContext) {
ctx.PreArchMutators(RegisterVisibilityRuleChecker) ctx.PreArchMutators(RegisterVisibilityRuleChecker)
})
var PrepareForTestWithVisibilityRuleGatherer = FixtureRegisterWithContext(func(ctx RegistrationContext) {
ctx.PreArchMutators(RegisterVisibilityRuleGatherer) ctx.PreArchMutators(RegisterVisibilityRuleGatherer)
})
var PrepareForTestWithVisibilityRuleEnforcer = FixtureRegisterWithContext(func(ctx RegistrationContext) {
ctx.PostDepsMutators(RegisterVisibilityRuleEnforcer) ctx.PostDepsMutators(RegisterVisibilityRuleEnforcer)
}) }
// The rule checker needs to be registered before defaults expansion to correctly check that // 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. // //visibility:xxx isn't combined with other packages in the same list in any one module.

View File

@@ -1143,21 +1143,22 @@ func TestVisibility(t *testing.T) {
for _, test := range visibilityTests { for _, test := range visibilityTests {
t.Run(test.name, func(t *testing.T) { t.Run(test.name, func(t *testing.T) {
result := emptyTestFixtureFactory.Extend( 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) { FixtureRegisterWithContext(func(ctx RegistrationContext) {
ctx.RegisterModuleType("mock_library", newMockLibraryModule) ctx.RegisterModuleType("mock_library", newMockLibraryModule)
ctx.RegisterModuleType("mock_parent", newMockParentFactory) ctx.RegisterModuleType("mock_parent", newMockParentFactory)
ctx.RegisterModuleType("mock_defaults", defaultsFactory) ctx.RegisterModuleType("mock_defaults", defaultsFactory)
}), }),
prepareForTestWithFakePrebuiltModules, 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 // Add additional files to the mock filesystem
test.fs.AddToFixture(), test.fs.AddToFixture(),
). ).