From db1555409b1107bb7d6f451659d1a367d4c7adfd Mon Sep 17 00:00:00 2001 From: yangzk Date: Mon, 23 Jun 2025 14:42:01 +0800 Subject: [PATCH] =?UTF-8?q?Description:=20=E6=94=AF=E6=8C=81=E9=80=9A?= =?UTF-8?q?=E8=BF=87nativeModuleManager=E5=88=9B=E5=BB=BA=E5=92=8C?= =?UTF-8?q?=E8=8E=B7=E5=8F=96Dl=5Fnamespace=20IssueNo:#ICGTGD=20Sig:=20SIG?= =?UTF-8?q?=5FApplicationFramework=20Feature=20or=20Bugfix:=20Bugfix=20Bin?= =?UTF-8?q?ary=20Source:=20No?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangzk Change-Id: I0bc98926b092d09b81b33a4bb3ea0558efd4380e --- module_manager/native_module_manager.cpp | 15 +++++++++++++++ module_manager/native_module_manager.h | 1 + .../module_manager_test/module_manager_test.cpp | 12 ++++++++++++ 3 files changed, 28 insertions(+) diff --git a/module_manager/native_module_manager.cpp b/module_manager/native_module_manager.cpp index 78c61488a..9ac776142 100644 --- a/module_manager/native_module_manager.cpp +++ b/module_manager/native_module_manager.cpp @@ -502,6 +502,21 @@ void NativeModuleManager::CreateLdNamespace(const std::string moduleName, const #endif } +bool NativeModuleManager::GetLdNamespaceName(const std::string &moduleName, std::string &nsName) +{ +#if !defined(WINDOWS_PLATFORM) && !defined(MAC_PLATFORM) && !defined(__BIONIC__) && !defined(IOS_PLATFORM) && \ + !defined(LINUX_PLATFORM) + if (nsMap_.find(moduleName) == nsMap_.end()) { + HILOG_ERROR("not found ns: %{public}s", moduleName.c_str()); + return false; + } + nsName = "moduleNs_" + moduleName; + return true; +#else + return false; +#endif +} + void NativeModuleManager::SetAppLibPath(const std::string& moduleName, const std::vector& appLibPath, const bool& isSystemApp) { diff --git a/module_manager/native_module_manager.h b/module_manager/native_module_manager.h index 1a45d5db0..be8ce6bb0 100644 --- a/module_manager/native_module_manager.h +++ b/module_manager/native_module_manager.h @@ -84,6 +84,7 @@ public: void Register(NativeModule* nativeModule); void SetAppLibPath(const std::string& moduleName, const std::vector& appLibPath, const bool& isSystemApp = false); + bool GetLdNamespaceName(const std::string &moduleName, std::string &nsName); NativeModule* LoadNativeModule(const char* moduleName, const char* path, bool isAppModule, std::string& errInfo, bool internal = false, const char* relativePath = ""); void SetNativeEngine(std::string moduleName, NativeEngine* nativeEngine); diff --git a/module_manager/test/unittest/module_manager_test/module_manager_test.cpp b/module_manager/test/unittest/module_manager_test/module_manager_test.cpp index 9722ade09..6298d806a 100644 --- a/module_manager/test/unittest/module_manager_test/module_manager_test.cpp +++ b/module_manager/test/unittest/module_manager_test/module_manager_test.cpp @@ -227,7 +227,13 @@ HWTEST_F(ModuleManagerTest, LoadNativeModuleTest_008, TestSize.Level1) moduleManager->Register(nullptr); moduleManager->CreateSharedLibsSonames(); + std::string nsName; + bool res = moduleManager->GetLdNamespaceName(moduleName, nsName); + EXPECT_EQ(res, false); moduleManager->CreateLdNamespace(moduleName, libPath, true); + res = moduleManager->GetLdNamespaceName(moduleName, nsName); + EXPECT_EQ(res, true); + EXPECT_STREQ(nsName.c_str(), ("moduleNs_" + moduleName).c_str()); GTEST_LOG_(INFO) << "ModuleManagerTest, LoadNativeModuleTest_008 end"; } @@ -245,7 +251,13 @@ HWTEST_F(ModuleManagerTest, LoadNativeModuleTest_009, TestSize.Level1) std::shared_ptr moduleManager = std::make_shared(); ASSERT_NE(nullptr, moduleManager); + std::string nsName; + bool res = moduleManager->GetLdNamespaceName(moduleName, nsName); + EXPECT_EQ(res, false); moduleManager->CreateLdNamespace(moduleName, libPath, false); + res = moduleManager->GetLdNamespaceName(moduleName, nsName); + EXPECT_EQ(res, true); + EXPECT_STREQ(nsName.c_str(), ("moduleNs_" + moduleName).c_str()); std::vector appLibPath; moduleManager->SetAppLibPath(moduleName, appLibPath, false); GTEST_LOG_(INFO) << "ModuleManagerTest, LoadNativeModuleTest_009 end"; -- Gitee