diff options
author | Justin Yun <justinyun@google.com> | 2020-02-18 11:29:07 +0900 |
---|---|---|
committer | Justin Yun <justinyun@google.com> | 2020-02-21 10:40:23 +0900 |
commit | eb4f08c577ca3d39d14ada321ea5f9c7444bd06a (patch) | |
tree | 0018cd8ff6e7d0705d0662be909e0ff61b4d84f2 /libnativeloader/native_loader_test.cpp | |
parent | 272b36d1b5cbab951239b32ed679a9dbc4ffdf1a (diff) |
Use a different VNDK namespace for product apps
As product partition may have a different VNDK version than that of
vendor partition, they may not share the same VNDK namespace for
their apps.
Define a new vndk_product namespace in the system section for product
apps that uses ro.product.vndk.version.
Bug: 149063221
Test: atest libnativeloader_test
Change-Id: I1bb76617104a49b0d11af13d2f116959a18390a3
Diffstat (limited to 'libnativeloader/native_loader_test.cpp')
-rw-r--r-- | libnativeloader/native_loader_test.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libnativeloader/native_loader_test.cpp b/libnativeloader/native_loader_test.cpp index cc43e58a00..f0446f0db1 100644 --- a/libnativeloader/native_loader_test.cpp +++ b/libnativeloader/native_loader_test.cpp @@ -97,6 +97,7 @@ static std::unordered_map<std::string, Platform::mock_namespace_handle> namespac {"com_android_art", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com_android_art"))}, {"sphal", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("sphal"))}, {"vndk", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("vndk"))}, + {"vndk_product", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("vndk_product"))}, {"com_android_neuralnetworks", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com_android_neuralnetworks"))}, {"com_android_cronet", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com_android_cronet"))}, {"com_android_os_statsd", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com_android_os_statsd"))}, @@ -354,6 +355,7 @@ class NativeLoaderTest_Create : public NativeLoaderTest { bool expected_link_with_art_ns = true; bool expected_link_with_sphal_ns = !vendor_public_libraries().empty(); bool expected_link_with_vndk_ns = false; + bool expected_link_with_vndk_product_ns = false; bool expected_link_with_default_ns = false; bool expected_link_with_neuralnetworks_ns = true; bool expected_link_with_cronet_ns = true; @@ -361,7 +363,8 @@ class NativeLoaderTest_Create : public NativeLoaderTest { std::string expected_shared_libs_to_platform_ns = default_public_libraries(); std::string expected_shared_libs_to_art_ns = art_public_libraries(); std::string expected_shared_libs_to_sphal_ns = vendor_public_libraries(); - std::string expected_shared_libs_to_vndk_ns = vndksp_libraries(); + std::string expected_shared_libs_to_vndk_ns = vndksp_libraries_vendor(); + std::string expected_shared_libs_to_vndk_product_ns = vndksp_libraries_product(); std::string expected_shared_libs_to_default_ns = default_public_libraries(); std::string expected_shared_libs_to_neuralnetworks_ns = neuralnetworks_public_libraries(); std::string expected_shared_libs_to_cronet_ns = cronet_public_libraries(); @@ -400,6 +403,11 @@ class NativeLoaderTest_Create : public NativeLoaderTest { StrEq(expected_shared_libs_to_vndk_ns))) .WillOnce(Return(true)); } + if (expected_link_with_vndk_product_ns) { + EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("vndk_product"), + StrEq(expected_shared_libs_to_vndk_product_ns))) + .WillOnce(Return(true)); + } if (expected_link_with_default_ns) { EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("default"), StrEq(expected_shared_libs_to_default_ns))) @@ -512,7 +520,7 @@ TEST_P(NativeLoaderTest_Create, UnbundledProductApp) { expected_permitted_path + ":/product/" LIB_DIR ":/system/product/" LIB_DIR; expected_shared_libs_to_platform_ns = expected_shared_libs_to_platform_ns + ":" + llndk_libraries_product(); - expected_link_with_vndk_ns = true; + expected_link_with_vndk_product_ns = true; } SetExpectations(); RunTest(); |