!16134 Description: 启动框架任务moduleName和type修复

Merge pull request !16134 from yangzk/appstartup1
This commit is contained in:
openharmony_ci
2025-08-25 09:14:14 +00:00
committed by Gitee
7 changed files with 55 additions and 39 deletions
@@ -672,8 +672,8 @@ int32_t JsAbilityStage::RegisterAppStartupTask(const std::shared_ptr<AppExecFwk:
jsStartupTask->SetIsExcludeFromAutoStart(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);
}
@@ -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");
@@ -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<std::string>();
startupTaskInfo.srcEntry = startupTaskJson.at(SRC_ENTRY).get<std::string>();
@@ -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;
@@ -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" ]
}
}
@@ -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" ]
}
}
@@ -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> startupManager = DelayedSingleton<StartupManager>::GetInstance();
EXPECT_TRUE(startupManager != nullptr);
std::string name = "test_name";
ModuleStartupConfigInfo info(name, "", "", AppExecFwk::ModuleType::ENTRY, false);
std::vector<StartupTaskInfo> 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