summaryrefslogtreecommitdiff
path: root/apex/apex_test.go
diff options
context:
space:
mode:
author Jooyung Han <jooyung@google.com> 2020-06-25 17:14:25 +0900
committer Jooyung Han <jooyung@google.com> 2020-06-25 17:14:25 +0900
commitefb184e499edd2f0a1f717ab68e2052eb597adab (patch)
treeba7734a4602e5d72bdebc6217db3517829c5443e /apex/apex_test.go
parent85d61767b579eb2dc92fe4f15861437ceee57e18 (diff)
apex: use SubName for requiredDeps
apexBundle keeps the required dependencies for native modules which are external dependencies and then records it in .mk file as LOCAL_REQUIRED_MODULES key. LOCAL_REQUIRED_MODULES should list module name which are made of cc.BaseModuleName() + SubName. By the way, because a use_vendor:true apex is supposed to be installed in /system/apex, we don't append SubName(.vendor) suffix. Bug: 159211312 Bug: 155841765 Test: m Change-Id: Ifd2858dda0b373110a0cd18a0c55db41f0fc2a99
Diffstat (limited to 'apex/apex_test.go')
-rw-r--r--apex/apex_test.go65
1 files changed, 65 insertions, 0 deletions
diff --git a/apex/apex_test.go b/apex/apex_test.go
index d5eb45761..befb81483 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -2202,6 +2202,71 @@ func TestVendorApex(t *testing.T) {
ensureContains(t, androidMk, `LOCAL_MODULE_PATH := /tmp/target/product/test_device/vendor/apex`)
}
+func TestAndroidMk_UseVendorRequired(t *testing.T) {
+ ctx, config := testApex(t, `
+ apex {
+ name: "myapex",
+ key: "myapex.key",
+ use_vendor: true,
+ native_shared_libs: ["mylib"],
+ }
+
+ apex_key {
+ name: "myapex.key",
+ public_key: "testkey.avbpubkey",
+ private_key: "testkey.pem",
+ }
+
+ cc_library {
+ name: "mylib",
+ vendor_available: true,
+ apex_available: ["myapex"],
+ }
+ `, func(fs map[string][]byte, config android.Config) {
+ setUseVendorAllowListForTest(config, []string{"myapex"})
+ })
+
+ apexBundle := ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().(*apexBundle)
+ data := android.AndroidMkDataForTest(t, config, "", apexBundle)
+ name := apexBundle.BaseModuleName()
+ prefix := "TARGET_"
+ var builder strings.Builder
+ data.Custom(&builder, name, prefix, "", data)
+ androidMk := builder.String()
+ ensureContains(t, androidMk, "LOCAL_REQUIRED_MODULES += libc libm libdl\n")
+}
+
+func TestAndroidMk_VendorApexRequired(t *testing.T) {
+ ctx, config := testApex(t, `
+ apex {
+ name: "myapex",
+ key: "myapex.key",
+ vendor: true,
+ native_shared_libs: ["mylib"],
+ }
+
+ apex_key {
+ name: "myapex.key",
+ public_key: "testkey.avbpubkey",
+ private_key: "testkey.pem",
+ }
+
+ cc_library {
+ name: "mylib",
+ vendor_available: true,
+ }
+ `)
+
+ apexBundle := ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().(*apexBundle)
+ data := android.AndroidMkDataForTest(t, config, "", apexBundle)
+ name := apexBundle.BaseModuleName()
+ prefix := "TARGET_"
+ var builder strings.Builder
+ data.Custom(&builder, name, prefix, "", data)
+ androidMk := builder.String()
+ ensureContains(t, androidMk, "LOCAL_REQUIRED_MODULES += libc.vendor libm.vendor libdl.vendor\n")
+}
+
func TestAndroidMkWritesCommonProperties(t *testing.T) {
ctx, config := testApex(t, `
apex {