diff options
author | Paul Duffin <paulduffin@google.com> | 2021-05-14 18:21:45 +0100 |
---|---|---|
committer | Paul Duffin <paulduffin@google.com> | 2021-05-20 07:56:17 +0100 |
commit | d90fde3758dab1dd5ba8718bc64ae8390c0995cf (patch) | |
tree | dc2304c8db19b8bf879ed96d3a00d97b654fba1a /apex | |
parent | b05357c76e4276aba3dd01d283ec37a2aad5a1aa (diff) | |
download | soong-d90fde3758dab1dd5ba8718bc64ae8390c0995cf.tar.gz |
Test dex jar paths provided to apex by bootclasspath_fragment
This change adds a test to verify the existing behavior to provide a
baseline against which following changes can be compared.
Bug: 179354495
Test: m nothing
Merged-In: Ib7dadf3e65151f4e925251f7b1a9c099e824ea63
Change-Id: Ib7dadf3e65151f4e925251f7b1a9c099e824ea63
(cherry picked from commit f2fa0b5e8ee57369ac920969071eee2b56cc04db)
Diffstat (limited to 'apex')
-rw-r--r-- | apex/bootclasspath_fragment_test.go | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/apex/bootclasspath_fragment_test.go b/apex/bootclasspath_fragment_test.go index 7bb3ff611..7f5e15c04 100644 --- a/apex/bootclasspath_fragment_test.go +++ b/apex/bootclasspath_fragment_test.go @@ -433,6 +433,14 @@ func TestBootclasspathFragmentContentsNoName(t *testing.T) { result := android.GroupFixturePreparers( prepareForTestWithBootclasspathFragment, prepareForTestWithMyapex, + // Configure bootclasspath jars to ensure that hidden API encoding is performed on them. + java.FixtureConfigureBootJars("myapex:foo", "myapex:bar"), + // Make sure that the frameworks/base/Android.bp file exists as otherwise hidden API encoding + // is disabled. + android.FixtureAddTextFile("frameworks/base/Android.bp", ""), + + java.PrepareForTestWithJavaSdkLibraryFiles, + java.FixtureWithLastReleaseApis("foo"), ).RunTestWithBp(t, ` apex { name: "myapex", @@ -449,10 +457,11 @@ func TestBootclasspathFragmentContentsNoName(t *testing.T) { private_key: "testkey.pem", } - java_library { + java_sdk_library { name: "foo", srcs: ["b.java"], - installable: true, + shared_library: false, + public: {enabled: true}, apex_available: [ "myapex", ], @@ -491,6 +500,27 @@ func TestBootclasspathFragmentContentsNoName(t *testing.T) { `myapex.key`, `mybootclasspathfragment`, }) + + apex := result.ModuleForTests("myapex", "android_common_myapex_image") + apexRule := apex.Rule("apexRule") + copyCommands := apexRule.Args["copy_commands"] + + // Make sure that the fragment provides the hidden API encoded dex jars to the APEX. + fragment := result.Module("mybootclasspathfragment", "android_common_apex10000") + + info := result.ModuleProvider(fragment, java.BootclasspathFragmentApexContentInfoProvider).(java.BootclasspathFragmentApexContentInfo) + + checkFragmentExportedDexJar := func(name string, expectedDexJar string) { + module := result.Module(name, "android_common_apex10000") + dexJar := info.DexBootJarPathForContentModule(module) + android.AssertPathRelativeToTopEquals(t, name+" dex", expectedDexJar, dexJar) + + expectedCopyCommand := fmt.Sprintf("&& cp -f %s out/soong/.intermediates/myapex/android_common_myapex_image/image.apex/javalib/%s.jar", expectedDexJar, name) + android.AssertStringDoesContain(t, name+" apex copy command", copyCommands, expectedCopyCommand) + } + + checkFragmentExportedDexJar("foo", "out/soong/.intermediates/foo/android_common_apex10000/hiddenapi/foo.jar") + checkFragmentExportedDexJar("bar", "out/soong/.intermediates/bar/android_common_apex10000/hiddenapi/bar.jar") } // TODO(b/177892522) - add test for host apex. |