From 35b6fb04f851c63046341d74f273dccb9d690e44 Mon Sep 17 00:00:00 2001 From: yangzk Date: Wed, 13 Aug 2025 17:13:41 +0800 Subject: [PATCH] =?UTF-8?q?Description:=20=E5=90=AF=E5=8A=A8=E6=A1=86?= =?UTF-8?q?=E6=9E=B6=E4=BB=BB=E5=8A=A1moduleName=E5=92=8Ctype=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20IssueNo:=20Sig:=20SIG=5FApplicationFramework=20Feat?= =?UTF-8?q?ure=20or=20Bugfix:=20Bugfix=20Binary=20Source:=20No?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangzk Change-Id: If04170df990002d5b91f855eb37c580b30fea3a3 --- .../ability_runtime/app/js_ability_stage.cpp | 4 +-- .../appkit/app_startup/js_startup_task.cpp | 5 +-- .../appkit/app_startup/startup_manager.cpp | 1 + .../appkit/app_startup/app_startup_task.h | 3 +- .../ext_native_startup_manager_test/BUILD.gn | 24 +++++--------- .../ext_native_startup_task_test/BUILD.gn | 26 +++++----------- .../startup_manager_test.cpp | 31 +++++++++++++++++++ 7 files changed, 55 insertions(+), 39 deletions(-) diff --git a/frameworks/native/appkit/ability_runtime/app/js_ability_stage.cpp b/frameworks/native/appkit/ability_runtime/app/js_ability_stage.cpp index a8136fe61d8..659e30c3066 100644 --- a/frameworks/native/appkit/ability_runtime/app/js_ability_stage.cpp +++ b/frameworks/native/appkit/ability_runtime/app/js_ability_stage.cpp @@ -672,8 +672,8 @@ int32_t JsAbilityStage::RegisterAppStartupTask(const std::shared_ptrSetIsExcludeFromAutoStart(item.excludeFromAutoStart); jsStartupTask->SetCallCreateOnMainThread(item.callCreateOnMainThread); jsStartupTask->SetWaitOnMainThread(item.waitOnMainThread); - jsStartupTask->SetModuleName(hapModuleInfo->moduleName); - jsStartupTask->SetModuleType(hapModuleInfo->moduleType); + jsStartupTask->SetModuleName(item.moduleName); + jsStartupTask->SetModuleType(item.moduleType); jsStartupTask->SetMatchRules(std::move(item.matchRules)); startupManager->RegisterAppStartupTask(item.name, jsStartupTask); } diff --git a/frameworks/native/appkit/app_startup/js_startup_task.cpp b/frameworks/native/appkit/app_startup/js_startup_task.cpp index 38b35a59424..cce72b5c96f 100644 --- a/frameworks/native/appkit/app_startup/js_startup_task.cpp +++ b/frameworks/native/appkit/app_startup/js_startup_task.cpp @@ -143,8 +143,8 @@ int32_t JsStartupTask::LoadJsOhmUrl() return ERR_STARTUP_INTERNAL_ERROR; } - std::string moduleNameWithStartupTask = moduleName_ + "::startupTask"; - std::string srcPath(moduleName_ + "/" + srcEntry_); + std::string moduleNameWithStartupTask = GetModuleName() + "::startupTask"; + std::string srcPath(GetModuleName() + "/" + srcEntry_); auto pos = srcPath.rfind('.'); if (pos == std::string::npos) { TAG_LOGE(AAFwkTag::STARTUP, "invalid srcEntry"); @@ -152,6 +152,7 @@ int32_t JsStartupTask::LoadJsOhmUrl() } srcPath.erase(pos); srcPath.append(".abc"); + jsRuntime_.UpdateModuleNameAndAssetPath(GetModuleName()); startupJsRef_ = jsRuntime_.LoadModule(moduleNameWithStartupTask, srcPath, hapPath_, esModule_, false, ohmUrl_); if (startupJsRef_ == nullptr) { TAG_LOGE(AAFwkTag::STARTUP, "startup task null"); diff --git a/frameworks/native/appkit/app_startup/startup_manager.cpp b/frameworks/native/appkit/app_startup/startup_manager.cpp index 81515f80bba..1eb13642114 100644 --- a/frameworks/native/appkit/app_startup/startup_manager.cpp +++ b/frameworks/native/appkit/app_startup/startup_manager.cpp @@ -1046,6 +1046,7 @@ bool StartupManager::AnalyzeAppStartupTaskInner(const ModuleStartupConfigInfo& i startupTaskInfo.moduleName = info.name_; startupTaskInfo.hapPath = info.hapPath_; startupTaskInfo.esModule = info.esModule_; + startupTaskInfo.moduleType = info.moduleType_; startupTaskInfo.name = startupTaskJson.at(NAME).get(); startupTaskInfo.srcEntry = startupTaskJson.at(SRC_ENTRY).get(); diff --git a/interfaces/kits/native/appkit/app_startup/app_startup_task.h b/interfaces/kits/native/appkit/app_startup/app_startup_task.h index 1eac952ac69..649c5a58887 100644 --- a/interfaces/kits/native/appkit/app_startup/app_startup_task.h +++ b/interfaces/kits/native/appkit/app_startup/app_startup_task.h @@ -41,6 +41,7 @@ struct StartupTaskInfo { bool callCreateOnMainThread = true; bool waitOnMainThread = true; bool esModule = true; + AppExecFwk::ModuleType moduleType = AppExecFwk::ModuleType::UNKNOWN; StartupTaskMatchRules matchRules; }; @@ -72,7 +73,7 @@ public: AppExecFwk::ModuleType GetModuleType() const; -protected: +private: bool isExcludeFromAutoStart_ = false; std::string moduleName_; AppExecFwk::ModuleType moduleType_ = AppExecFwk::ModuleType::UNKNOWN; diff --git a/test/new_test/unit_test/app_startup/ext_native_startup_manager_test/BUILD.gn b/test/new_test/unit_test/app_startup/ext_native_startup_manager_test/BUILD.gn index 9f58c22f117..235cb9f07dc 100644 --- a/test/new_test/unit_test/app_startup/ext_native_startup_manager_test/BUILD.gn +++ b/test/new_test/unit_test/app_startup/ext_native_startup_manager_test/BUILD.gn @@ -17,17 +17,14 @@ import("//foundation/ability/ability_runtime/ability_runtime.gni") module_output_path = "ability_runtime/app_startup" copy("ext_native_startup_manager_copy") { - sources = [ - "${ability_runtime_path}/interfaces/kits/native/appkit/app_startup/ext_native_startup_manager.h", - "${ability_runtime_path}/frameworks/native/appkit/app_startup/ext_native_startup_manager.cpp", - ] - outputs = [ "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_manager/{{source_file_part}}" ] + sources = [ "${ability_runtime_path}/interfaces/kits/native/appkit/app_startup/ext_native_startup_manager.h" ] + outputs = [ "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_manager/{{source_file_part}}" ] } ohos_unittest("ext_native_startup_manager_test") { module_out_path = module_output_path - include_dirs = [ + include_dirs = [ "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_manager/", "${ability_runtime_test_path}/new_test/mock/app_startup/ext_native_startup_task", "${ability_runtime_test_path}/new_test/mock/app_startup/startup_manager", @@ -38,16 +35,11 @@ ohos_unittest("ext_native_startup_manager_test") { "${ability_runtime_test_path}/new_test/mock/hilog_tag_wrapper", ] - sources = - [ "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_manager/ext_native_startup_manager.cpp" ] + sources = [ "${ability_runtime_path}/frameworks/native/appkit/app_startup/ext_native_startup_manager.cpp" ] - sources += [ - "ext_native_startup_manager_test.cpp", - ] + sources += [ "ext_native_startup_manager_test.cpp" ] - deps = [ - ":ext_native_startup_manager_copy", - ] + deps = [ ":ext_native_startup_manager_copy" ] cflags = [ "-fno-access-control" ] @@ -57,11 +49,11 @@ ohos_unittest("ext_native_startup_manager_test") { "googletest:gmock_main", "googletest:gtest_main", "hilog:libhilog", - "json:nlohmann_json_static" + "json:nlohmann_json_static", ] } group("unittest") { testonly = true deps = [ ":ext_native_startup_manager_test" ] -} \ No newline at end of file +} diff --git a/test/new_test/unit_test/app_startup/ext_native_startup_task_test/BUILD.gn b/test/new_test/unit_test/app_startup/ext_native_startup_task_test/BUILD.gn index 0ec1531cebc..14f2ca5326a 100644 --- a/test/new_test/unit_test/app_startup/ext_native_startup_task_test/BUILD.gn +++ b/test/new_test/unit_test/app_startup/ext_native_startup_task_test/BUILD.gn @@ -17,30 +17,20 @@ import("//foundation/ability/ability_runtime/ability_runtime.gni") module_output_path = "ability_runtime/app_startup" copy("ext_native_startup_task_copy") { - sources = [ - "${ability_runtime_path}/interfaces/kits/native/appkit/app_startup/ext_native_startup_task.h", - "${ability_runtime_path}/frameworks/native/appkit/app_startup/ext_native_startup_task.cpp", - ] - outputs = [ "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_task/{{source_file_part}}" ] + sources = [ "${ability_runtime_path}/interfaces/kits/native/appkit/app_startup/ext_native_startup_task.h" ] + outputs = [ "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_task/{{source_file_part}}" ] } ohos_unittest("ext_native_startup_task_test") { module_out_path = module_output_path - include_dirs = [ - "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_task/", - ] + include_dirs = [ "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_task/" ] - sources = - [ "${target_gen_dir}/frameworks/native/appkit/app_startup/ext_native_startup_task/ext_native_startup_task.cpp" ] + sources = [ "${ability_runtime_path}/frameworks/native/appkit/app_startup/ext_native_startup_task.cpp" ] - sources += [ - "ext_native_startup_task_test.cpp", - ] + sources += [ "ext_native_startup_task_test.cpp" ] - deps = [ - ":ext_native_startup_task_copy", - ] + deps = [ ":ext_native_startup_task_copy" ] cflags = [ "-fno-access-control" ] @@ -50,11 +40,11 @@ ohos_unittest("ext_native_startup_task_test") { "googletest:gmock_main", "googletest:gtest_main", "hilog:libhilog", - "json:nlohmann_json_static" + "json:nlohmann_json_static", ] } group("unittest") { testonly = true deps = [ ":ext_native_startup_task_test" ] -} \ No newline at end of file +} diff --git a/test/unittest/frameworks_kits_appkit_native_test/startup_manager_test.cpp b/test/unittest/frameworks_kits_appkit_native_test/startup_manager_test.cpp index 03becf770d9..b0a2b38d061 100644 --- a/test/unittest/frameworks_kits_appkit_native_test/startup_manager_test.cpp +++ b/test/unittest/frameworks_kits_appkit_native_test/startup_manager_test.cpp @@ -144,6 +144,7 @@ HWTEST_F(StartupManagerTest, LoadAppStartupTaskConfig_0100, Function | MediumTes EXPECT_EQ(ret, ERR_OK); StartupTaskInfo startupTaskInfo; startupTaskInfo.name = "test_name"; + startupTaskInfo.moduleType = AppExecFwk::ModuleType::ENTRY; startupManager->pendingStartupTaskInfos_.emplace_back(startupTaskInfo); ret = startupManager->LoadAppStartupTaskConfig(needRunAutoStartupTask); EXPECT_EQ(ret, ERR_OK); @@ -954,6 +955,36 @@ HWTEST_F(StartupManagerTest, AnalyzeAppStartupTaskInner_0200, Function | MediumT GTEST_LOG_(INFO) << "StartupManagerTest AnalyzeAppStartupTaskInner_0200 end"; } +/** + * @tc.name: AnalyzeAppStartupTaskInner_0300 + * @tc.type: FUNC + * @tc.Function: AnalyzeAppStartupTaskInner + */ +HWTEST_F(StartupManagerTest, AnalyzeAppStartupTaskInner_0300, Function | MediumTest | Level1) +{ + GTEST_LOG_(INFO) << "StartupManagerTest AnalyzeAppStartupTaskInner_0300 start"; + std::shared_ptr startupManager = DelayedSingleton::GetInstance(); + EXPECT_TRUE(startupManager != nullptr); + std::string name = "test_name"; + ModuleStartupConfigInfo info(name, "", "", AppExecFwk::ModuleType::ENTRY, false); + std::vector pendingStartupTaskInfos; + nlohmann::json appStartupTaskInnerJson = R"( + { + "srcEntry": "test_entry", + "name": "test_name" + } + )"_json; + bool ret = startupManager->AnalyzeAppStartupTaskInner(info, appStartupTaskInnerJson, pendingStartupTaskInfos); + EXPECT_EQ(ret, true); + ASSERT_EQ(pendingStartupTaskInfos.size(), 1); + EXPECT_EQ(pendingStartupTaskInfos[0].moduleName, name); + EXPECT_EQ(pendingStartupTaskInfos[0].moduleType, AppExecFwk::ModuleType::ENTRY); + EXPECT_EQ(pendingStartupTaskInfos[0].moduleType, AppExecFwk::ModuleType::ENTRY); + EXPECT_EQ(pendingStartupTaskInfos[0].srcEntry, "test_entry"); + EXPECT_EQ(pendingStartupTaskInfos[0].name, "test_name"); + GTEST_LOG_(INFO) << "StartupManagerTest AnalyzeAppStartupTaskInner_0300 end"; +} + /** * @tc.name: AnalyzePreloadSoStartupTaskInner_0100 * @tc.type: FUNC -- Gitee