summaryrefslogtreecommitdiff
path: root/libnativeloader/native_loader_test.cpp
diff options
context:
space:
mode:
authorJustin Yun <justinyun@google.com>2020-02-18 11:29:07 +0900
committerJustin Yun <justinyun@google.com>2020-02-21 10:40:23 +0900
commiteb4f08c577ca3d39d14ada321ea5f9c7444bd06a (patch)
tree0018cd8ff6e7d0705d0662be909e0ff61b4d84f2 /libnativeloader/native_loader_test.cpp
parent272b36d1b5cbab951239b32ed679a9dbc4ffdf1a (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.cpp12
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();