aboutsummaryrefslogtreecommitdiff
path: root/apex
diff options
context:
space:
mode:
authorPaul Duffin <paulduffin@google.com>2021-05-14 18:21:45 +0100
committerPaul Duffin <paulduffin@google.com>2021-05-20 07:56:17 +0100
commitd90fde3758dab1dd5ba8718bc64ae8390c0995cf (patch)
treedc2304c8db19b8bf879ed96d3a00d97b654fba1a /apex
parentb05357c76e4276aba3dd01d283ec37a2aad5a1aa (diff)
downloadsoong-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.go34
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.