From 2be9dcd3aa96663e2f61b4eb336fbf8ffee177d8 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Tue, 9 Mar 2021 13:18:10 +0000 Subject: [PATCH] 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 --- apex/apex_test.go | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/apex/apex_test.go b/apex/apex_test.go index e32b9f375..1006a62c1 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -50,14 +50,14 @@ func names(s string) (ns []string) { return } -func testApexError(t *testing.T, pattern, bp string, handlers ...testCustomizer) { +func testApexError(t *testing.T, pattern, bp string, handlers ...interface{}) { t.Helper() testApexFixtureFactory(bp, handlers). ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(pattern)). 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() result := testApexFixtureFactory(bp, handlers).RunTest(t) return result.TestContext @@ -208,14 +208,26 @@ var apexFixtureFactory = android.NewFixtureFactory( }), ) -func testApexFixtureFactory(bp string, handlers []testCustomizer) android.FixtureFactory { - factory := apexFixtureFactory.Extend( - android.FixtureCustomPreparer(func(fixture android.Fixture) { - for _, handler := range handlers { - handler(fixture.MockFS(), fixture.Config()) +func testApexFixtureFactory(bp string, handlers []interface{}) android.FixtureFactory { + var preparers []android.FixturePreparer + for _, handler := range handlers { + 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 != "" { factory = factory.Extend(android.FixtureWithRootAndroidBp(bp)) }