Allow test handlers to be either FixturePreparer or testCustomizer

This allows the testCustomizers to be switched to FixturePreparers
incrementally rather than in one go.

Bug: 181070625
Test: m nothing
Change-Id: Idd9d2e28abf9b17fc46b5566ab8d3affa330287e
This commit is contained in:
Paul Duffin
2021-03-09 13:18:10 +00:00
parent 34d433ad7e
commit 2be9dcd3aa

View File

@@ -50,14 +50,14 @@ func names(s string) (ns []string) {
return return
} }
func testApexError(t *testing.T, pattern, bp string, handlers ...testCustomizer) { func testApexError(t *testing.T, pattern, bp string, handlers ...interface{}) {
t.Helper() t.Helper()
testApexFixtureFactory(bp, handlers). testApexFixtureFactory(bp, handlers).
ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(pattern)). ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(pattern)).
RunTest(t) RunTest(t)
} }
func testApex(t *testing.T, bp string, handlers ...testCustomizer) *android.TestContext { func testApex(t *testing.T, bp string, handlers ...interface{}) *android.TestContext {
t.Helper() t.Helper()
result := testApexFixtureFactory(bp, handlers).RunTest(t) result := testApexFixtureFactory(bp, handlers).RunTest(t)
return result.TestContext return result.TestContext
@@ -208,14 +208,26 @@ var apexFixtureFactory = android.NewFixtureFactory(
}), }),
) )
func testApexFixtureFactory(bp string, handlers []testCustomizer) android.FixtureFactory { func testApexFixtureFactory(bp string, handlers []interface{}) android.FixtureFactory {
factory := apexFixtureFactory.Extend( var preparers []android.FixturePreparer
android.FixtureCustomPreparer(func(fixture android.Fixture) {
for _, handler := range handlers { for _, handler := range handlers {
handler(fixture.MockFS(), fixture.Config()) var preparer android.FixturePreparer
if p, ok := handler.(android.FixturePreparer); ok {
preparer = p
} else {
var customizer testCustomizer
if c, ok := handler.(testCustomizer); ok {
customizer = c
} else {
customizer = handler.(func(fs map[string][]byte, config android.Config))
} }
}), preparer = android.FixtureCustomPreparer(func(fixture android.Fixture) {
) customizer(fixture.MockFS(), fixture.Config())
})
}
preparers = append(preparers, preparer)
}
factory := apexFixtureFactory.Extend(preparers...)
if bp != "" { if bp != "" {
factory = factory.Extend(android.FixtureWithRootAndroidBp(bp)) factory = factory.Extend(android.FixtureWithRootAndroidBp(bp))
} }