diff options
author | Paul Duffin <paulduffin@google.com> | 2021-03-22 22:09:42 +0000 |
---|---|---|
committer | Paul Duffin <paulduffin@google.com> | 2021-04-08 18:53:04 +0100 |
commit | b432df9cda56a19f05377628989ee4c7550e8678 (patch) | |
tree | 49c5659686a4bdbb6c397a9b7fcacbb93729d47f /java/platform_bootclasspath_test.go | |
parent | a18b3b66cde0831550373131da0cc870d512faa7 (diff) |
Add dependencies from platform_bootclasspath to contents
Adds a FinalDeps mutator to add dependencies from the
platform_bootclasspath to the configured boot jars which can be from
either the platform or any apex. It adds dependencies for every
configured boot jar, whether in ArtApexJars, BootJars or
UpdatableBootJars.
At the moment the dependencies are only used for testing purposes
but following changes will make more use of them.
Bug: 177892522
Test: m nothing
Change-Id: I981305bf45bc20539a3d36987252f490e2b885cc
Diffstat (limited to 'java/platform_bootclasspath_test.go')
-rw-r--r-- | java/platform_bootclasspath_test.go | 101 |
1 files changed, 98 insertions, 3 deletions
diff --git a/java/platform_bootclasspath_test.go b/java/platform_bootclasspath_test.go index 1c81cfdc2..ebbe3a5ee 100644 --- a/java/platform_bootclasspath_test.go +++ b/java/platform_bootclasspath_test.go @@ -29,10 +29,105 @@ var prepareForTestWithPlatformBootclasspath = android.GroupFixturePreparers( ) func TestPlatformBootclasspath(t *testing.T) { - prepareForTestWithPlatformBootclasspath. - RunTestWithBp(t, ` + preparer := android.GroupFixturePreparers( + prepareForTestWithPlatformBootclasspath, + dexpreopt.FixtureSetBootJars("platform:foo", "platform:bar"), + android.FixtureWithRootAndroidBp(` platform_bootclasspath { name: "platform-bootclasspath", } - `) + + java_library { + name: "bar", + srcs: ["a.java"], + system_modules: "none", + sdk_version: "none", + compile_dex: true, + } + `), + ) + + var addSourceBootclassPathModule = android.FixtureAddTextFile("source/Android.bp", ` + java_library { + name: "foo", + srcs: ["a.java"], + system_modules: "none", + sdk_version: "none", + compile_dex: true, + } + `) + + var addPrebuiltBootclassPathModule = android.FixtureAddTextFile("prebuilt/Android.bp", ` + java_import { + name: "foo", + jars: ["a.jar"], + compile_dex: true, + prefer: false, + } + `) + + var addPrebuiltPreferredBootclassPathModule = android.FixtureAddTextFile("prebuilt/Android.bp", ` + java_import { + name: "foo", + jars: ["a.jar"], + compile_dex: true, + prefer: true, + } + `) + + t.Run("missing", func(t *testing.T) { + preparer. + ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(`"platform-bootclasspath" depends on undefined module "foo"`)). + RunTest(t) + }) + + t.Run("source", func(t *testing.T) { + result := android.GroupFixturePreparers( + preparer, + addSourceBootclassPathModule, + ).RunTest(t) + + CheckPlatformBootclasspathModules(t, result, "platform-bootclasspath", []string{ + "platform:foo", + "platform:bar", + }) + }) + + t.Run("prebuilt", func(t *testing.T) { + result := android.GroupFixturePreparers( + preparer, + addPrebuiltBootclassPathModule, + ).RunTest(t) + + CheckPlatformBootclasspathModules(t, result, "platform-bootclasspath", []string{ + "platform:prebuilt_foo", + "platform:bar", + }) + }) + + t.Run("source+prebuilt - source preferred", func(t *testing.T) { + result := android.GroupFixturePreparers( + preparer, + addSourceBootclassPathModule, + addPrebuiltBootclassPathModule, + ).RunTest(t) + + CheckPlatformBootclasspathModules(t, result, "platform-bootclasspath", []string{ + "platform:foo", + "platform:bar", + }) + }) + + t.Run("source+prebuilt - prebuilt preferred", func(t *testing.T) { + result := android.GroupFixturePreparers( + preparer, + addSourceBootclassPathModule, + addPrebuiltPreferredBootclassPathModule, + ).RunTest(t) + + CheckPlatformBootclasspathModules(t, result, "platform-bootclasspath", []string{ + "platform:prebuilt_foo", + "platform:bar", + }) + }) } |