diff options
author | 2020-06-25 17:14:25 +0900 | |
---|---|---|
committer | 2020-06-25 17:14:25 +0900 | |
commit | efb184e499edd2f0a1f717ab68e2052eb597adab (patch) | |
tree | ba7734a4602e5d72bdebc6217db3517829c5443e /apex/apex_test.go | |
parent | 85d61767b579eb2dc92fe4f15861437ceee57e18 (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.go | 65 |
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 { |