diff options
author | 2022-01-28 14:58:56 +0000 | |
---|---|---|
committer | 2022-01-28 15:08:06 +0000 | |
commit | e6e90db00a6923de7f446e08625989bb0bc20ea0 (patch) | |
tree | 621e443f8cb05a48d8a2fea4186a789f6604b125 /apex/bootclasspath_fragment_test.go | |
parent | 620dc3f4f9893196036257844b8727e0043d50e5 (diff) |
Allow installing boot images outside of APEX for prebuilt.
This change is similar to aosp/1947127, but for prebuilts.
After this change, if `bootImageConfig.installDirOnDevice` is set to a
path outside of the APEX, the build system will build a boot image from
the dex files and the profile extracted from the prebuilt APEX.
Otherwise, it keeps the current behavior: extracting the boot image from
the prebuilt APEX.
This is a no-op change. Current behavior is not affected.
Bug: 211973309
Test: m nothing
Test: -
On internal master:
1. Patch aosp/1947128.
2. Patch ag/16743847 and ag/16746804.
3. m SOONG_CONFIG_art_module_source_build=false com.google.android.art
4. See the boot image being installed in `/system/framework/<arch>`.
Change-Id: I24ca525309fecaf3ab7a67960fbf118cd00ecd1d
Diffstat (limited to 'apex/bootclasspath_fragment_test.go')
-rw-r--r-- | apex/bootclasspath_fragment_test.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/apex/bootclasspath_fragment_test.go b/apex/bootclasspath_fragment_test.go index 8f44fc537..ce6b7f730 100644 --- a/apex/bootclasspath_fragment_test.go +++ b/apex/bootclasspath_fragment_test.go @@ -553,12 +553,66 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) { `prebuilt_com.android.art`, }) + // The boot images are installed in the APEX by Soong, so there shouldn't be any dexpreopt-related Make modules. + ensureDoesNotContainRequiredDeps(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{ + "mybootclasspathfragment-dexpreopt-arm64-boot.art", + "mybootclasspathfragment-dexpreopt-arm64-boot.oat", + "mybootclasspathfragment-dexpreopt-arm64-boot.vdex", + "mybootclasspathfragment-dexpreopt-arm64-boot-bar.art", + "mybootclasspathfragment-dexpreopt-arm64-boot-bar.oat", + "mybootclasspathfragment-dexpreopt-arm64-boot-bar.vdex", + "mybootclasspathfragment-dexpreopt-arm-boot.art", + "mybootclasspathfragment-dexpreopt-arm-boot.oat", + "mybootclasspathfragment-dexpreopt-arm-boot.vdex", + "mybootclasspathfragment-dexpreopt-arm-boot-bar.art", + "mybootclasspathfragment-dexpreopt-arm-boot-bar.oat", + "mybootclasspathfragment-dexpreopt-arm-boot-bar.vdex", + }) + // Make sure that the prebuilt bootclasspath_fragment copies its dex files to the predefined // locations for the art image. module := result.ModuleForTests("prebuilt_mybootclasspathfragment", "android_common_com.android.art") checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo") }) + t.Run("boot image files from preferred prebuilt no boot image in apex", func(t *testing.T) { + result := android.GroupFixturePreparers( + commonPreparer, + + // Configure some libraries in the art bootclasspath_fragment that match the source + // bootclasspath_fragment's contents property. + java.FixtureConfigureBootJars("com.android.art:foo", "com.android.art:bar"), + addSource("foo", "bar"), + + // Make sure that a preferred prebuilt with consistent contents doesn't affect the apex. + addPrebuilt(true, "foo", "bar"), + + java.FixtureSetBootImageInstallDirOnDevice("art", "system/framework"), + ).RunTest(t) + + ensureExactContents(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{ + "etc/boot-image.prof", + "etc/classpaths/bootclasspath.pb", + "javalib/bar.jar", + "javalib/foo.jar", + }) + + ensureContainsRequiredDeps(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{ + "mybootclasspathfragment-dexpreopt-arm64-boot.art", + "mybootclasspathfragment-dexpreopt-arm64-boot.oat", + "mybootclasspathfragment-dexpreopt-arm64-boot.vdex", + "mybootclasspathfragment-dexpreopt-arm64-boot-bar.art", + "mybootclasspathfragment-dexpreopt-arm64-boot-bar.oat", + "mybootclasspathfragment-dexpreopt-arm64-boot-bar.vdex", + "mybootclasspathfragment-dexpreopt-arm-boot.art", + "mybootclasspathfragment-dexpreopt-arm-boot.oat", + "mybootclasspathfragment-dexpreopt-arm-boot.vdex", + "mybootclasspathfragment-dexpreopt-arm-boot-bar.art", + "mybootclasspathfragment-dexpreopt-arm-boot-bar.oat", + "mybootclasspathfragment-dexpreopt-arm-boot-bar.vdex", + }) + }) + t.Run("source with inconsistency between config and contents", func(t *testing.T) { android.GroupFixturePreparers( commonPreparer, @@ -631,6 +685,7 @@ func TestBootclasspathFragmentInPrebuiltArtApex(t *testing.T) { // Configure some libraries in the art bootclasspath_fragment. java.FixtureConfigureBootJars("com.android.art:foo", "com.android.art:bar"), + java.FixtureSetBootImageInstallDirOnDevice("art", "apex/com.android.art/javalib"), ) bp := ` |