Remove FixturePreparer.Extend()

Use GroupFixturePreparers instead.

Bug: 182885307
Test: m nothing
Change-Id: Idc01d3cc5a57576a4cf417e9105d1ab851126e10
This commit is contained in:
Paul Duffin 2021-03-29 02:16:14 +01:00
parent 4814bb814a
commit 79abe57f53
6 changed files with 28 additions and 30 deletions

View file

@ -367,15 +367,6 @@ type FixturePreparer interface {
// Return the flattened and deduped list of simpleFixturePreparer pointers. // Return the flattened and deduped list of simpleFixturePreparer pointers.
list() []*simpleFixturePreparer list() []*simpleFixturePreparer
// Creates a copy of this instance and adds some additional preparers.
//
// Before the preparers are used they are combined with the current preparer, any groups of
// preparers are flattened, and the list is deduped so that each preparer is only used once. See
// the file documentation in android/fixture.go for more details.
//
// deprecated: Use GroupFixturePreparers() instead.
Extend(preparers ...FixturePreparer) FixturePreparer
// Create a Fixture. // Create a Fixture.
Fixture(t *testing.T) Fixture Fixture(t *testing.T) Fixture
@ -656,17 +647,12 @@ func (b *baseFixturePreparer) initBaseFixturePreparer(self FixturePreparer) {
b.self = self b.self = self
} }
func (b *baseFixturePreparer) Extend(preparers ...FixturePreparer) FixturePreparer {
all := dedupAndFlattenPreparers(b.self.list(), preparers)
return newFixturePreparer(all)
}
func (b *baseFixturePreparer) Fixture(t *testing.T) Fixture { func (b *baseFixturePreparer) Fixture(t *testing.T) Fixture {
return createFixture(t, t.TempDir(), b.self.list()) return createFixture(t, t.TempDir(), b.self.list())
} }
func (b *baseFixturePreparer) ExtendWithErrorHandler(errorHandler FixtureErrorHandler) FixturePreparer { func (b *baseFixturePreparer) ExtendWithErrorHandler(errorHandler FixtureErrorHandler) FixturePreparer {
return b.self.Extend(newSimpleFixturePreparer(func(fixture *fixture) { return GroupFixturePreparers(b.self, newSimpleFixturePreparer(func(fixture *fixture) {
fixture.errorHandler = errorHandler fixture.errorHandler = errorHandler
})) }))
} }

View file

@ -41,7 +41,7 @@ func TestFixtureDedup(t *testing.T) {
group := GroupFixturePreparers(preparer1, preparer2, preparer1, preparer1Then2) group := GroupFixturePreparers(preparer1, preparer2, preparer1, preparer1Then2)
extension := group.Extend(preparer4, preparer2) extension := GroupFixturePreparers(group, preparer4, preparer2)
GroupFixturePreparers(extension, preparer1, preparer2, preparer2Then1, preparer3).Fixture(t) GroupFixturePreparers(extension, preparer1, preparer2, preparer2Then1, preparer3).Fixture(t)

View file

@ -670,7 +670,8 @@ func TestGenruleAllowMissingDependencies(t *testing.T) {
cmd: "cat $(in) > $(out)", cmd: "cat $(in) > $(out)",
} }
` `
result := prepareForGenRuleTest.Extend( result := android.GroupFixturePreparers(
prepareForGenRuleTest,
android.FixtureModifyConfigAndContext( android.FixtureModifyConfigAndContext(
func(config android.Config, ctx *android.TestContext) { func(config android.Config, ctx *android.TestContext) {
config.TestProductVariables.Allow_missing_dependencies = proptools.BoolPtr(true) config.TestProductVariables.Allow_missing_dependencies = proptools.BoolPtr(true)

View file

@ -39,7 +39,8 @@ var hiddenApiFixtureFactory = android.GroupFixturePreparers(
prepareForJavaTest, PrepareForTestWithHiddenApiBuildComponents) prepareForJavaTest, PrepareForTestWithHiddenApiBuildComponents)
func TestHiddenAPISingleton(t *testing.T) { func TestHiddenAPISingleton(t *testing.T) {
result := hiddenApiFixtureFactory.Extend( result := android.GroupFixturePreparers(
hiddenApiFixtureFactory,
fixtureSetBootJarsProductVariable("platform:foo"), fixtureSetBootJarsProductVariable("platform:foo"),
).RunTestWithBp(t, ` ).RunTestWithBp(t, `
java_library { java_library {
@ -56,7 +57,8 @@ func TestHiddenAPISingleton(t *testing.T) {
} }
func TestHiddenAPIIndexSingleton(t *testing.T) { func TestHiddenAPIIndexSingleton(t *testing.T) {
result := hiddenApiFixtureFactory.Extend( result := android.GroupFixturePreparers(
hiddenApiFixtureFactory,
PrepareForTestWithJavaSdkLibraryFiles, PrepareForTestWithJavaSdkLibraryFiles,
FixtureWithLastReleaseApis("bar"), FixtureWithLastReleaseApis("bar"),
fixtureSetBootJarsProductVariable("platform:foo", "platform:bar"), fixtureSetBootJarsProductVariable("platform:foo", "platform:bar"),
@ -115,7 +117,8 @@ func TestHiddenAPISingletonWithSourceAndPrebuiltPreferredButNoDex(t *testing.T)
" replaced by the prebuilt module \"prebuilt_foo\" but unfortunately it does not provide a" + " replaced by the prebuilt module \"prebuilt_foo\" but unfortunately it does not provide a" +
" suitable boot dex jar" " suitable boot dex jar"
hiddenApiFixtureFactory.Extend( android.GroupFixturePreparers(
hiddenApiFixtureFactory,
fixtureSetBootJarsProductVariable("platform:foo"), fixtureSetBootJarsProductVariable("platform:foo"),
).ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(expectedErrorMessage)). ).ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(expectedErrorMessage)).
RunTestWithBp(t, ` RunTestWithBp(t, `
@ -134,7 +137,8 @@ func TestHiddenAPISingletonWithSourceAndPrebuiltPreferredButNoDex(t *testing.T)
} }
func TestHiddenAPISingletonWithPrebuilt(t *testing.T) { func TestHiddenAPISingletonWithPrebuilt(t *testing.T) {
result := hiddenApiFixtureFactory.Extend( result := android.GroupFixturePreparers(
hiddenApiFixtureFactory,
fixtureSetBootJarsProductVariable("platform:foo"), fixtureSetBootJarsProductVariable("platform:foo"),
).RunTestWithBp(t, ` ).RunTestWithBp(t, `
java_import { java_import {
@ -151,7 +155,8 @@ func TestHiddenAPISingletonWithPrebuilt(t *testing.T) {
} }
func TestHiddenAPISingletonWithPrebuiltUseSource(t *testing.T) { func TestHiddenAPISingletonWithPrebuiltUseSource(t *testing.T) {
result := hiddenApiFixtureFactory.Extend( result := android.GroupFixturePreparers(
hiddenApiFixtureFactory,
fixtureSetBootJarsProductVariable("platform:foo"), fixtureSetBootJarsProductVariable("platform:foo"),
).RunTestWithBp(t, ` ).RunTestWithBp(t, `
java_library { java_library {
@ -178,7 +183,8 @@ func TestHiddenAPISingletonWithPrebuiltUseSource(t *testing.T) {
} }
func TestHiddenAPISingletonWithPrebuiltOverrideSource(t *testing.T) { func TestHiddenAPISingletonWithPrebuiltOverrideSource(t *testing.T) {
result := hiddenApiFixtureFactory.Extend( result := android.GroupFixturePreparers(
hiddenApiFixtureFactory,
fixtureSetBootJarsProductVariable("platform:foo"), fixtureSetBootJarsProductVariable("platform:foo"),
).RunTestWithBp(t, ` ).RunTestWithBp(t, `
java_library { java_library {
@ -236,7 +242,8 @@ func TestHiddenAPISingletonSdks(t *testing.T) {
} }
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
result := hiddenApiFixtureFactory.Extend( result := android.GroupFixturePreparers(
hiddenApiFixtureFactory,
tc.preparer, tc.preparer,
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
variables.Always_use_prebuilt_sdks = proptools.BoolPtr(tc.unbundledBuild) variables.Always_use_prebuilt_sdks = proptools.BoolPtr(tc.unbundledBuild)
@ -286,7 +293,8 @@ func TestHiddenAPISingletonWithPrebuiltCsvFile(t *testing.T) {
// Where to find the prebuilt hiddenapi files: // Where to find the prebuilt hiddenapi files:
prebuiltHiddenApiDir := "path/to/prebuilt/hiddenapi" prebuiltHiddenApiDir := "path/to/prebuilt/hiddenapi"
result := hiddenApiFixtureFactory.Extend( result := android.GroupFixturePreparers(
hiddenApiFixtureFactory,
fixtureSetBootJarsProductVariable("platform:foo"), fixtureSetBootJarsProductVariable("platform:foo"),
fixtureSetPrebuiltHiddenApiDirProductVariable(&prebuiltHiddenApiDir), fixtureSetPrebuiltHiddenApiDirProductVariable(&prebuiltHiddenApiDir),
).RunTestWithBp(t, ` ).RunTestWithBp(t, `

View file

@ -402,14 +402,16 @@ func TestClasspath(t *testing.T) {
// Test again with PLATFORM_VERSION_CODENAME=REL, javac -source 8 -target 8 // Test again with PLATFORM_VERSION_CODENAME=REL, javac -source 8 -target 8
t.Run("REL + Java language level 8", func(t *testing.T) { t.Run("REL + Java language level 8", func(t *testing.T) {
result := fixtureFactory.Extend(prepareWithPlatformVersionRel).RunTestWithBp(t, bpJava8) result := android.GroupFixturePreparers(
fixtureFactory, prepareWithPlatformVersionRel).RunTestWithBp(t, bpJava8)
checkClasspath(t, result, true /* isJava8 */) checkClasspath(t, result, true /* isJava8 */)
}) })
// Test again with PLATFORM_VERSION_CODENAME=REL, javac -source 9 -target 9 // Test again with PLATFORM_VERSION_CODENAME=REL, javac -source 9 -target 9
t.Run("REL + Java language level 9", func(t *testing.T) { t.Run("REL + Java language level 9", func(t *testing.T) {
result := fixtureFactory.Extend(prepareWithPlatformVersionRel).RunTestWithBp(t, bp) result := android.GroupFixturePreparers(
fixtureFactory, prepareWithPlatformVersionRel).RunTestWithBp(t, bp)
checkClasspath(t, result, false /* isJava8 */) checkClasspath(t, result, false /* isJava8 */)
}) })

View file

@ -28,9 +28,10 @@ import (
// testProjectJson run the generation of rust-project.json. It returns the raw // testProjectJson run the generation of rust-project.json. It returns the raw
// content of the generated file. // content of the generated file.
func testProjectJson(t *testing.T, bp string) []byte { func testProjectJson(t *testing.T, bp string) []byte {
result := prepareForRustTest. result := android.GroupFixturePreparers(
Extend(android.FixtureMergeEnv(map[string]string{"SOONG_GEN_RUST_PROJECT": "1"})). prepareForRustTest,
RunTestWithBp(t, bp) android.FixtureMergeEnv(map[string]string{"SOONG_GEN_RUST_PROJECT": "1"}),
).RunTestWithBp(t, bp)
// The JSON file is generated via WriteFileToOutputDir. Therefore, it // The JSON file is generated via WriteFileToOutputDir. Therefore, it
// won't appear in the Output of the TestingSingleton. Manually verify // won't appear in the Output of the TestingSingleton. Manually verify