Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2be9dcd3 authored by Paul Duffin's avatar Paul Duffin
Browse files

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
parent 34d433ad
Loading
Loading
Loading
Loading
+21 −9
Original line number Diff line number Diff line
@@ -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) {
func testApexFixtureFactory(bp string, handlers []interface{}) android.FixtureFactory {
	var preparers []android.FixturePreparer
	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 != "" {
		factory = factory.Extend(android.FixtureWithRootAndroidBp(bp))
	}