diff --git a/services/appmgr/BUILD.gn b/services/appmgr/BUILD.gn index 5325a1406c..e82b4dc657 100644 --- a/services/appmgr/BUILD.gn +++ b/services/appmgr/BUILD.gn @@ -21,7 +21,6 @@ config("appmgr_config") { "//third_party/json/include", "${ability_runtime_innerkits_path}/ability_manager/include", "${ability_runtime_services_path}/common/include", - "${appspawn_path}/interfaces/innerkits/include", "${ability_runtime_path}/tools/aa/include", "${ability_runtime_path}/utils/global/time/include", "${distributeddatamgr_path}/kv_store/interfaces/innerkits/distributeddatamgr/include", @@ -52,8 +51,6 @@ ohos_shared_library("libappms") { "src/app_running_record.cpp", "src/app_running_status_module.cpp", "src/app_spawn_client.cpp", - "src/app_spawn_msg_wrapper.cpp", - "src/app_spawn_socket.cpp", "src/app_state_observer_manager.cpp", "src/child_process_record.cpp", "src/module_running_record.cpp", @@ -101,9 +98,10 @@ ohos_shared_library("libappms") { "ability_base:configuration", "ability_base:want", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/services/appmgr/include/app_running_record.h b/services/appmgr/include/app_running_record.h index cda04274e1..adb8baceb6 100644 --- a/services/appmgr/include/app_running_record.h +++ b/services/appmgr/include/app_running_record.h @@ -41,7 +41,7 @@ #include "priority_object.h" #include "app_lifecycle_deal.h" #include "module_running_record.h" -#include "app_spawn_msg_wrapper.h" +#include "app_spawn_client.h" #include "app_malloc_info.h" #include "window_visibility_changed_listener.h" #include "app_jsheap_mem_info.h" diff --git a/services/appmgr/include/app_spawn_client.h b/services/appmgr/include/app_spawn_client.h index fceba44ac9..a7b7704ee6 100644 --- a/services/appmgr/include/app_spawn_client.h +++ b/services/appmgr/include/app_spawn_client.h @@ -16,15 +16,78 @@ #ifndef OHOS_ABILITY_RUNTIME_APP_SPAWN_CLIENT_H #define OHOS_ABILITY_RUNTIME_APP_SPAWN_CLIENT_H -#include +#include +#include +#include +#include +#include +#include +#include +#include "appexecfwk_errors.h" +#include "appspawn.h" +#include "data_group_info.h" #include "nocopyable.h" -#include "app_spawn_msg_wrapper.h" -#include "app_spawn_socket.h" +#include "shared/base_shared_bundle_info.h" namespace OHOS { namespace AppExecFwk { enum class SpawnConnectionState { STATE_NOT_CONNECT, STATE_CONNECTED, STATE_CONNECT_FAILED }; +using HspList = std::vector; +using DataGroupInfoList = std::vector; +const int32_t MAX_FLAG_INDEX = 32; +const int32_t MAX_PROC_NAME_LEN = 256; +const int32_t START_FLAG_BASE = 1; +struct AppSpawnStartMsg { + int32_t uid; + int32_t gid; + std::vector gids; + std::string procName; + std::string soPath; + uint32_t accessTokenId; + std::string apl; + std::string bundleName; + std::string renderParam; // only nweb spawn need this param. + int32_t pid; + int32_t code = 0; // 0: default, MSG_APP_SPAWN; 1: MSG_SPAWN_NATIVE_PROCESS; 2: MSG_GET_RENDER_TERMINATION_STATUS + uint32_t flags; + int32_t bundleIndex; // when dlp launch another app used, default is 0 + uint8_t setAllowInternet; + uint8_t allowInternet; // hap socket allowed + uint8_t reserved1; + uint8_t reserved2; + uint64_t accessTokenIdEx; + uint32_t hapFlags = 0; // whether is pre installed hap + HspList hspList; // list of harmony shared package + std::string overlayInfo; // overlay hap resource path list + DataGroupInfoList dataGroupInfoList; // list of harmony shared package + uint32_t mountPermissionFlags; + std::set permissions; + std::map appEnv; // environment variable to be set to the process + std::string ownerId; +}; + +constexpr auto LEN_PID = sizeof(pid_t); +struct StartFlags { + static const int COLD_START = 0; + static const int BACKUP_EXTENSION = 1; + static const int DLP_MANAGER = 2; + static const int DEBUGGABLE = 3; + static const int ASANENABLED = 4; + static const int ACCESS_BUNDLE_DIR = 5; + static const int NATIVEDEBUG = 6; + static const int NO_SANDBOX = 7; + static const int OVERLAY = 8; + static const int BUNDLE_RESOURCES = 9; + static const int GWP_ENABLED_FORCE = 10; + static const int GWP_ENABLED_NORMAL = 11; + static const int TSANENABLED = 12; +}; + +union AppSpawnPidMsg { + pid_t pid = 0; + char pidBuf[LEN_PID]; +}; class AppSpawnClient { public: @@ -36,7 +99,7 @@ public: /** * Destructor */ - virtual ~AppSpawnClient() = default; + virtual ~AppSpawnClient(); /** * Disable copy. @@ -49,15 +112,66 @@ public: ErrCode OpenConnection(); /** - * Close the connect of appSpawn. + * Close the connect of appspawn. */ void CloseConnection(); + + /** + * Return the connect state. + */ + SpawnConnectionState QueryConnectionState() const; + + /** + * Set dac info. + * + * @param startMsg, request message. + * @param reqHandle, handle for request message + */ + int32_t SetDacInfo(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle); + + /** + * Set mount permission. + * + * @param startMsg, request message. + * @param reqHandle, handle for request message + */ + int32_t SetMountPermission(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle); + + /** + * Set start flags. + * + * @param startMsg, request message. + * @param reqHandle, handle for request message + */ + int32_t SetStartFlags(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle); + + /** + * Set extra info: render-cmd, HspList, Overlay, DataGroup, AppEnv. + * + * @param startMsg, request message. + * @param reqHandle, handle for request message + */ + int32_t AppspawnSetExtMsg(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle); + + /** + * Create default appspawn msg. + * + * @param startMsg, request message. + * @param reqHandle, handle for request message + */ + int32_t AppspawnCreateDefaultMsg(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle); + + /** + * Verify startMsg. + * + * @param startMsg, request message. + */ + bool VerifyMsg(const AppSpawnStartMsg &startMsg); /** * Start request to nwebspawn process. - * */ - virtual ErrCode PreStartNWebSpawnProcess(); + virtual int32_t PreStartNWebSpawnProcess(); /** * AppSpawnClient core function, Start request to appSpawn. @@ -65,7 +179,7 @@ public: * @param startMsg, request message. * @param pid, pid of app process, get from appSpawn. */ - virtual ErrCode StartProcess(const AppSpawnStartMsg &startMsg, pid_t &pid); + virtual int32_t StartProcess(const AppSpawnStartMsg &startMsg, pid_t &pid); /** * Get render process termination status. @@ -73,51 +187,12 @@ public: * @param startMsg, request message. * @param status, termination status of render process, get from appSpawn. */ - virtual ErrCode GetRenderProcessTerminationStatus(const AppSpawnStartMsg &startMsg, int &status); - - /** - * Return the connect state. - */ - SpawnConnectionState QueryConnectionState() const; - - /** - * Set function, unit test also use it. - */ - void SetSocket(const std::shared_ptr socket); + virtual int32_t GetRenderProcessTerminationStatus(const AppSpawnStartMsg &startMsg, int &status); private: - /** - * AppSpawnClient core function, - * - * @param startMsg, request message. - * @param pid, pid of app process, get it from appSpawn. - */ - ErrCode StartProcessImpl(const AppSpawnStartMsg &startMsg, pid_t &pid); - - /** - * Start request to nwebspawn process. - * - */ - ErrCode PreStartNWebSpawnProcessImpl(); - - /** - * write string info to appSpawn. - * - * @param strInfo, request message wrapper. - */ - ErrCode WriteStrInfoMessage(const std::string &strInfo); - - /** - * @brief write message to appSpawn. - * - * @param startMsg, request message. - */ - ErrCode StartProcessForWriteMsg(const AppSpawnMsgWrapper &msgWrapper); - -private: - std::shared_ptr socket_; + std::string serviceName_ = APPSPAWN_SERVER_NAME; + AppSpawnClientHandle handle_ = nullptr; SpawnConnectionState state_ = SpawnConnectionState::STATE_NOT_CONNECT; - std::mutex socketLock_; }; } // namespace AppExecFwk } // namespace OHOS diff --git a/services/appmgr/include/app_spawn_msg_wrapper.h b/services/appmgr/include/app_spawn_msg_wrapper.h deleted file mode 100644 index 36d6eba9bb..0000000000 --- a/services/appmgr/include/app_spawn_msg_wrapper.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright (c) 2021-2023 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef OHOS_ABILITY_RUNTIME_APP_SPAWN_MSG_WRAPPER_H -#define OHOS_ABILITY_RUNTIME_APP_SPAWN_MSG_WRAPPER_H - -#include -#include -#include -#include - -#include "nocopyable.h" -#include "client_socket.h" -#include "data_group_info.h" -#include "shared/base_shared_bundle_info.h" - -namespace OHOS { -namespace AppExecFwk { -using AppSpawnMsg = AppSpawn::ClientSocket::AppProperty; -using HspList = std::vector; -using DataGroupInfoList = std::vector; - -struct AppSpawnStartMsg { - int32_t uid; - int32_t gid; - std::vector gids; - std::string procName; - std::string soPath; - uint32_t accessTokenId; - std::string apl; - std::string bundleName; - std::string renderParam; // only nweb spawn need this param. - int32_t pid; - int32_t code = 0; // 0: DEFAULT; 1: GET_RENDER_TERMINATION_STATUS; 2: SPAWN_NATIVE_PROCESS - uint32_t flags; - int32_t bundleIndex; // when dlp launch another app used, default is 0 - uint8_t setAllowInternet; - uint8_t allowInternet; // hap socket allowed - uint8_t reserved1; - uint8_t reserved2; - uint64_t accessTokenIdEx; - uint32_t hapFlags = 0; // whether is pre installed hap - HspList hspList; // list of harmony shared package - std::string overlayInfo; // overlay hap resource path list - DataGroupInfoList dataGroupInfoList; // list of harmony shared package - uint32_t mountPermissionFlags; - std::map appEnv; // environment variable to be set to the process - std::string ownerId; -}; - -constexpr auto LEN_PID = sizeof(pid_t); -struct StartFlags { - static const int COLD_START = 0; - static const int BACKUP_EXTENSION = 1; - static const int DLP_MANAGER = 2; - static const int DEBUGGABLE = 3; - static const int ASANENABLED = 4; - static const int NATIVEDEBUG = 6; - static const int NO_SANDBOX = 7; - static const int GWP_ENABLED_FORCE = 10; - static const int GWP_ENABLED_NORMAL = 11; - static const int TSANENABLED = 12; -}; - -union AppSpawnPidMsg { - pid_t pid = 0; - char pidBuf[LEN_PID]; -}; - -class AppSpawnMsgWrapper { -public: - /** - * Constructor. - */ - AppSpawnMsgWrapper() = default; - - /** - * Destructor - */ - ~AppSpawnMsgWrapper(); - - /** - * Disable copy. - */ - DISALLOW_COPY_AND_MOVE(AppSpawnMsgWrapper); - - /** - * Verify message and assign to member variable. - * - * @param startMsg, request message. - */ - bool AssembleMsg(const AppSpawnStartMsg &startMsg); - - /** - * Get function, return isValid_. - */ - bool IsValid() const - { - return isValid_; - } - - /** - * Get function, return member variable message. - */ - const void *GetMsgBuf() const - { - return reinterpret_cast(msg_); - } - - /** - * Get function, return message length. - */ - int32_t GetMsgLength() const - { - return isValid_ ? sizeof(AppSpawnMsg) : 0; - } - - /** - * Get function, return hsp list string - */ - const std::string& GetExtraInfoStr() const - { - return extraInfoStr_; - } - -private: - /** - * Verify message. - * - * @param startMsg, request message. - */ - bool VerifyMsg(const AppSpawnStartMsg &startMsg) const; - - /** - * Print message. - * - * @param startMsg, request message. - */ - void DumpMsg() const; - - /** - * Release message. - */ - void FreeMsg(); - - void BuildExtraInfo(const AppSpawnStartMsg &startMsg); - -private: - bool isValid_ = false; - // because AppSpawnMsg's size is uncertain, so should use raw pointer. - AppSpawnMsg *msg_ = nullptr; - std::string extraInfoStr_; -}; -} // namespace AppExecFwk -} // namespace OHOS -#endif // OHOS_ABILITY_RUNTIME_APP_SPAWN_MSG_WRAPPER_H diff --git a/services/appmgr/include/app_spawn_socket.h b/services/appmgr/include/app_spawn_socket.h deleted file mode 100644 index 1c1108cce8..0000000000 --- a/services/appmgr/include/app_spawn_socket.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef OHOS_ABILITY_RUNTIME_APP_SPAWN_SOCKET_H -#define OHOS_ABILITY_RUNTIME_APP_SPAWN_SOCKET_H - -#include - -#include "nocopyable.h" -#include "client_socket.h" -#include "appexecfwk_errors.h" - -namespace OHOS { -namespace AppExecFwk { -class AppSpawnSocket { -public: - /** - * Constructor. - */ - explicit AppSpawnSocket(bool isNWebSpawn = false); - - /** - * Destructor - */ - virtual ~AppSpawnSocket(); - - /** - * Disable copy. - */ - DISALLOW_COPY_AND_MOVE(AppSpawnSocket); - - /** - * Create client socket and connect the socket. - */ - virtual ErrCode OpenAppSpawnConnection(); - - /** - * Close the client socket. - */ - virtual void CloseAppSpawnConnection(); - - /** - * Write message to the socket. - * - * @param buf, message pointer. - * @param len, message size. - */ - virtual ErrCode WriteMessage(const void *buf, const int32_t len); - - /** - * Read message from the socket. - * - * @param buf, message pointer. - * @param len, message size. - */ - virtual ErrCode ReadMessage(void *buf, const int32_t len); - - /** - * Set function, unit test also use it. - * - * @param clientSocket, client socket. - */ - void SetClientSocket(const std::shared_ptr clientSocket); - -private: - std::shared_ptr clientSocket_; -}; -} // namespace AppExecFwk -} // namespace OHOS -#endif // OHOS_ABILITY_RUNTIME_APP_SPAWN_SOCKET_H diff --git a/services/appmgr/include/utils/appspawn_util.h b/services/appmgr/include/utils/appspawn_util.h index c9943f44d4..8050404577 100644 --- a/services/appmgr/include/utils/appspawn_util.h +++ b/services/appmgr/include/utils/appspawn_util.h @@ -17,7 +17,7 @@ #define OHOS_ABILITY_RUNTIME_APPSPAWN_UTIL_H #include "ability_info.h" -#include "app_spawn_msg_wrapper.h" +#include "app_spawn_client.h" #include "want.h" namespace OHOS { @@ -29,30 +29,30 @@ static uint32_t BuildStartFlags(const AAFwk::Want &want, const ApplicationInfo & { uint32_t startFlags = 0x0; if (want.GetBoolParam("coldStart", false)) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::COLD_START); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::COLD_START); } if (want.GetIntParam(DLP_PARAMS_INDEX, 0) != 0) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::DLP_MANAGER); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::DLP_MANAGER); } if (applicationInfo.debug) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::DEBUGGABLE); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::DEBUGGABLE); } if (applicationInfo.asanEnabled) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::ASANENABLED); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::ASANENABLED); } if (want.GetBoolParam("nativeDebug", false)) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::NATIVEDEBUG); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::NATIVEDEBUG); } if (applicationInfo.gwpAsanEnabled) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::GWP_ENABLED_FORCE); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::GWP_ENABLED_FORCE); } if (applicationInfo.isSystemApp) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::GWP_ENABLED_NORMAL); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::GWP_ENABLED_NORMAL); } if (applicationInfo.tsanEnabled) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::TSANENABLED); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::TSANENABLED); } return startFlags; @@ -63,7 +63,7 @@ static uint32_t BuildStartFlags(const AAFwk::Want &want, const AbilityInfo &abil uint32_t startFlags = BuildStartFlags(want, abilityInfo.applicationInfo); if (abilityInfo.extensionAbilityType == ExtensionAbilityType::BACKUP) { - startFlags = startFlags | (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::BACKUP_EXTENSION); + startFlags = startFlags | (START_FLAG_BASE << StartFlags::BACKUP_EXTENSION); } return startFlags; diff --git a/services/appmgr/libappms.map b/services/appmgr/libappms.map index f57931f75b..5781f92002 100644 --- a/services/appmgr/libappms.map +++ b/services/appmgr/libappms.map @@ -23,8 +23,6 @@ *AppRunningManager*; *AppRunningRecord*; *AppSpawnClient*; - *AppSpawnMsgWrapper*; - *AppSpawnSocket*; *AppStateObserverManager*; *ModuleRunningRecord*; *QuickFixCallbackWithRecord*; diff --git a/services/appmgr/src/app_mgr_service_inner.cpp b/services/appmgr/src/app_mgr_service_inner.cpp index dad50c69a1..9873fab023 100644 --- a/services/appmgr/src/app_mgr_service_inner.cpp +++ b/services/appmgr/src/app_mgr_service_inner.cpp @@ -34,7 +34,6 @@ #include "app_utils.h" #include "appfreeze_manager.h" #include "application_state_observer_stub.h" -#include "appspawn_mount_permission.h" #include "appspawn_util.h" #include "bundle_constants.h" #include "common_event.h" @@ -2087,10 +2086,10 @@ int32_t AppMgrServiceInner::StartPerfProcess(const std::shared_ptrGetStartMsg(); - startMsg.code = static_cast(AppSpawn::ClientSocket::AppOperateCode::SPAWN_NATIVE_PROCESS); + startMsg.code = static_cast(MSG_SPAWN_NATIVE_PROCESS); if (!isSandboxApp) { TAG_LOGD(AAFwkTag::APPMGR, "debuggablePipe sandbox: false."); - startMsg.flags |= (AppSpawn::ClientSocket::APPSPAWN_COLD_BOOT << StartFlags::NO_SANDBOX); + startMsg.flags |= (START_FLAG_BASE << StartFlags::NO_SANDBOX); } else { TAG_LOGI(AAFwkTag::APPMGR, "debuggablePipe sandbox: true"); } @@ -2202,8 +2201,9 @@ void AppMgrServiceInner::StartProcessVerifyPermission(const BundleInfo &bundleIn } } - std::set mountPermissionList = AppSpawn::AppspawnMountPermission::GetMountPermissionList(); - for (std::string permission : mountPermissionList) { + int32_t maxPermissionIndex = GetMaxPermissionIndex(); + for (int i = 0; i < maxPermissionIndex; i++) { + std::string permission = std::string(GetPermissionByIndex(i)); if (Security::AccessToken::AccessTokenKit::VerifyAccessToken(token, permission, false) == Security::AccessToken::PERMISSION_GRANTED) { permissions.insert(permission); @@ -2254,11 +2254,10 @@ void AppMgrServiceInner::StartProcess(const std::string &appName, const std::str uint8_t setAllowInternet = 0; uint8_t allowInternet = 1; std::vector gids; - std::set permissions; - StartProcessVerifyPermission(bundleInfo, hasAccessBundleDirReq, setAllowInternet, allowInternet, gids, - permissions); AppSpawnStartMsg startMsg; + StartProcessVerifyPermission(bundleInfo, hasAccessBundleDirReq, setAllowInternet, allowInternet, + gids, startMsg.permissions); startMsg.uid = bundleInfo.uid; startMsg.gid = bundleInfo.gid; startMsg.gids = gids; @@ -2274,14 +2273,13 @@ void AppMgrServiceInner::StartProcess(const std::string &appName, const std::str startMsg.dataGroupInfoList = dataGroupInfoList; startMsg.hapFlags = bundleInfo.isPreInstallApp ? 1 : 0; - startMsg.mountPermissionFlags = AppSpawn::AppspawnMountPermission::GenPermissionCode(permissions); startMsg.ownerId = bundleInfo.signatureInfo.appIdentifier; if (hasAccessBundleDirReq) { - startMsg.flags = startMsg.flags | APP_ACCESS_BUNDLE_DIR; + startMsg.flags = startMsg.flags | StartFlags::ACCESS_BUNDLE_DIR; } if (VerifyPermission(bundleInfo, PERMISSION_GET_BUNDLE_RESOURCES)) { - startMsg.flags = startMsg.flags | GET_BUNDLE_RESOURCES_FLAG; + startMsg.flags = startMsg.flags | StartFlags::BUNDLE_RESOURCES; } SetOverlayInfo(bundleName, userId, startMsg); @@ -4123,7 +4121,7 @@ int AppMgrServiceInner::GetRenderProcessTerminationStatus(pid_t renderPid, int & AppSpawnStartMsg startMsg; startMsg.pid = renderPid; - startMsg.code = 1; // 1: GET_RENDER_TERMINATION_STATUS + startMsg.code = MSG_GET_RENDER_TERMINATION_STATUS; ErrCode errCode = nwebSpawnClient->GetRenderProcessTerminationStatus(startMsg, status); if (FAILED(errCode)) { TAG_LOGE(AAFwkTag::APPMGR, "failed to get render process termination status, errCode %{public}08x", errCode); diff --git a/services/appmgr/src/app_spawn_client.cpp b/services/appmgr/src/app_spawn_client.cpp index b0ab64c096..1cff7426db 100644 --- a/services/appmgr/src/app_spawn_client.cpp +++ b/services/appmgr/src/app_spawn_client.cpp @@ -12,227 +12,74 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - #include "app_spawn_client.h" +#include + #include "hitrace_meter.h" -#include "hilog_tag_wrapper.h" +#include "hilog_wrapper.h" +#include "nlohmann/json.hpp" +#include "securec.h" namespace OHOS { namespace AppExecFwk { namespace { -const int32_t CONNECT_RETRY_DELAY = 200 * 1000; // 200ms -const int32_t CONNECT_RETRY_MAX_TIMES = 2; -const size_t SOCK_MAX_SEND_BUFFER = 5 * 1024; // 5KB -} // namespace - + const std::string HSPLIST_BUNDLES = "bundles"; + const std::string HSPLIST_MODULES = "modules"; + const std::string HSPLIST_VERSIONS = "versions"; + const std::string DATAGROUPINFOLIST_DATAGROUPID = "dataGroupId"; + const std::string DATAGROUPINFOLIST_GID = "gid"; + const std::string DATAGROUPINFOLIST_DIR = "dir"; + const std::string JSON_DATA_APP = "/data/app/el2/"; + const std::string JSON_GROUP = "/group/"; + const std::string VERSION_PREFIX = "v"; + const std::string APPSPAWN_CLIENT_USER_NAME = "APP_MANAGER_SERVICE"; + constexpr int32_t RIGHT_SHIFT_STEP = 1; + constexpr int32_t START_FLAG_TEST_NUM = 1; +} AppSpawnClient::AppSpawnClient(bool isNWebSpawn) { - socket_ = std::make_shared(isNWebSpawn); + HILOG_INFO("AppspawnCreateClient"); + if (isNWebSpawn) { + serviceName_ = NWEBSPAWN_SERVER_NAME; + } state_ = SpawnConnectionState::STATE_NOT_CONNECT; } +AppSpawnClient::~AppSpawnClient() +{ + CloseConnection(); +} + ErrCode AppSpawnClient::OpenConnection() { HITRACE_METER_NAME(HITRACE_TAG_APP, __PRETTY_FUNCTION__); if (state_ == SpawnConnectionState::STATE_CONNECTED) { - return ERR_OK; + return 0; } - - if (!socket_) { - TAG_LOGE(AAFwkTag::APPMGR, "failed to open connection without socket!"); - return ERR_APPEXECFWK_BAD_APPSPAWN_SOCKET; - } - - int32_t retryCount = 1; - ErrCode errCode = socket_->OpenAppSpawnConnection(); - while (FAILED(errCode) && retryCount <= CONNECT_RETRY_MAX_TIMES) { - TAG_LOGW(AAFwkTag::APPMGR, "failed to OpenConnection, retry times %{public}d ...", retryCount); - usleep(CONNECT_RETRY_DELAY); - errCode = socket_->OpenAppSpawnConnection(); - retryCount++; - } - if (SUCCEEDED(errCode)) { - state_ = SpawnConnectionState::STATE_CONNECTED; - } else { - TAG_LOGE(AAFwkTag::APPMGR, "failed to openConnection, errorCode is %{public}08x", errCode); + HILOG_INFO("OpenConnection"); + + AppSpawnClientHandle handle = nullptr; + ErrCode ret = 0; + ret = AppSpawnClientInit(serviceName_.c_str(), &handle); + if (FAILED(ret)) { + HILOG_ERROR("create appspawn client faild."); state_ = SpawnConnectionState::STATE_CONNECT_FAILED; + return ret; } - return errCode; + handle_ = handle; + state_ = SpawnConnectionState::STATE_CONNECTED; + + return ret; } -ErrCode AppSpawnClient::PreStartNWebSpawnProcess() +void AppSpawnClient::CloseConnection() { - TAG_LOGI(AAFwkTag::APPMGR, "PreStartNWebSpawnProcess"); - int32_t retryCount = 1; - ErrCode errCode = PreStartNWebSpawnProcessImpl(); - while (FAILED(errCode) && retryCount <= CONNECT_RETRY_MAX_TIMES) { - TAG_LOGE(AAFwkTag::APPMGR, "failed to Start NWebSpawn Process, retry times %{public}d ...", retryCount); - usleep(CONNECT_RETRY_DELAY); - errCode = PreStartNWebSpawnProcessImpl(); - retryCount++; + HILOG_INFO("AppspawnDestroyClient"); + if (state_ == SpawnConnectionState::STATE_CONNECTED) { + AppSpawnClientDestroy(handle_); } - return errCode; -} - -ErrCode AppSpawnClient::PreStartNWebSpawnProcessImpl() -{ - TAG_LOGI(AAFwkTag::APPMGR, "PreStartNWebSpawnProcessImpl"); - if (!socket_) { - TAG_LOGE(AAFwkTag::APPMGR, "failed to Pre Start NWebSpawn Process without socket!"); - return ERR_APPEXECFWK_BAD_APPSPAWN_SOCKET; - } - - // openconnection failed, return fail - std::lock_guard lock(socketLock_); - ErrCode result = OpenConnection(); - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "connect to nwebspawn failed!"); - return result; - } - - std::unique_ptr autoCloseConnection( - this, [](AppSpawnClient *client) { client->CloseConnection(); }); - - return result; -} - -ErrCode AppSpawnClient::StartProcess(const AppSpawnStartMsg &startMsg, pid_t &pid) -{ - HITRACE_METER_NAME(HITRACE_TAG_APP, __PRETTY_FUNCTION__); - if (!socket_) { - TAG_LOGE(AAFwkTag::APPMGR, "failed to startProcess without socket!"); - return ERR_APPEXECFWK_BAD_APPSPAWN_SOCKET; - } - int32_t retryCount = 1; - ErrCode errCode = StartProcessImpl(startMsg, pid); - while (FAILED(errCode) && retryCount <= CONNECT_RETRY_MAX_TIMES) { - TAG_LOGW(AAFwkTag::APPMGR, "failed to StartProcess, retry times %{public}d ...", retryCount); - usleep(CONNECT_RETRY_DELAY); - errCode = StartProcessImpl(startMsg, pid); - retryCount++; - } - return errCode; -} - -ErrCode AppSpawnClient::StartProcessImpl(const AppSpawnStartMsg &startMsg, pid_t &pid) -{ - HITRACE_METER_NAME(HITRACE_TAG_APP, __PRETTY_FUNCTION__); - std::lock_guard lock(socketLock_); - ErrCode result = OpenConnection(); - // open connection failed, return fail - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "connect to appSpawn failed!"); - return result; - } - std::unique_ptr autoCloseConnection( - this, [](AppSpawnClient *client) { client->CloseConnection(); }); - - AppSpawnMsgWrapper msgWrapper; - if (!msgWrapper.AssembleMsg(startMsg)) { - TAG_LOGE(AAFwkTag::APPMGR, "AssembleMsg failed!"); - return ERR_APPEXECFWK_ASSEMBLE_START_MSG_FAILED; - } - AppSpawnPidMsg pidMsg; - if (msgWrapper.IsValid()) { - result = socket_->WriteMessage(msgWrapper.GetMsgBuf(), msgWrapper.GetMsgLength()); - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "WriteMessage failed!"); - return result; - } - result = StartProcessForWriteMsg(msgWrapper); - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "StartProcessForWriteMsg failed!"); - return result; - } - result = socket_->ReadMessage(reinterpret_cast(pidMsg.pidBuf), LEN_PID); - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "ReadMessage failed!"); - return result; - } - } - if (pidMsg.pid <= 0) { - TAG_LOGE(AAFwkTag::APPMGR, "invalid pid!"); - result = ERR_APPEXECFWK_INVALID_PID; - } else { - pid = pidMsg.pid; - } - return result; -} - -ErrCode AppSpawnClient::StartProcessForWriteMsg(const AppSpawnMsgWrapper &msgWrapper) -{ - ErrCode result = ERR_OK; - result = WriteStrInfoMessage(msgWrapper.GetExtraInfoStr()); - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "Write extra info failed!"); - return result; - } - return result; -} - -ErrCode AppSpawnClient::WriteStrInfoMessage(const std::string &strInfo) -{ - ErrCode result = ERR_OK; - if (strInfo.empty()) { - return result; - } - - // split msg - const char *buff = strInfo.c_str(); - size_t leftLen = strInfo.size() + 1; - TAG_LOGD(AAFwkTag::APPMGR, "strInfo length is %zu", leftLen); - while (leftLen >= SOCK_MAX_SEND_BUFFER) { - result = socket_->WriteMessage(buff, SOCK_MAX_SEND_BUFFER); - if (FAILED(result)) { - return result; - } - buff += SOCK_MAX_SEND_BUFFER; - leftLen -= SOCK_MAX_SEND_BUFFER; - } - - TAG_LOGD(AAFwkTag::APPMGR, "strInfo: leftLen = %zu", leftLen); - if (leftLen > 0) { - result = socket_->WriteMessage(buff, leftLen); - } - return result; -} - -ErrCode AppSpawnClient::GetRenderProcessTerminationStatus(const AppSpawnStartMsg &startMsg, int &status) -{ - if (!socket_) { - TAG_LOGE(AAFwkTag::APPMGR, "socket_ is null!"); - return ERR_APPEXECFWK_BAD_APPSPAWN_SOCKET; - } - - std::lock_guard lock(socketLock_); - ErrCode result = OpenConnection(); - // open connection failed, return fail - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "connect to appSpawn failed!"); - return result; - } - std::unique_ptr autoCloseConnection( - this, [](AppSpawnClient *client) { client->CloseConnection(); }); - - AppSpawnMsgWrapper msgWrapper; - if (!msgWrapper.AssembleMsg(startMsg)) { - TAG_LOGE(AAFwkTag::APPMGR, "AssembleMsg failed!"); - return ERR_APPEXECFWK_ASSEMBLE_START_MSG_FAILED; - } - if (msgWrapper.IsValid()) { - result = socket_->WriteMessage(msgWrapper.GetMsgBuf(), msgWrapper.GetMsgLength()); - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "WriteMessage failed!"); - return result; - } - result = socket_->ReadMessage(reinterpret_cast(&status), sizeof(int)); - if (FAILED(result)) { - TAG_LOGE(AAFwkTag::APPMGR, "ReadMessage failed!"); - return result; - } - } - return result; + state_ = SpawnConnectionState::STATE_NOT_CONNECT; } SpawnConnectionState AppSpawnClient::QueryConnectionState() const @@ -240,17 +87,313 @@ SpawnConnectionState AppSpawnClient::QueryConnectionState() const return state_; } -void AppSpawnClient::CloseConnection() +static std::string DumpDataGroupInfoListToJson(const DataGroupInfoList &dataGroupInfoList) { - if (socket_ && state_ == SpawnConnectionState::STATE_CONNECTED) { - socket_->CloseAppSpawnConnection(); + nlohmann::json dataGroupInfoListJson; + for (auto& dataGroupInfo : dataGroupInfoList) { + dataGroupInfoListJson[DATAGROUPINFOLIST_DATAGROUPID].emplace_back(dataGroupInfo.dataGroupId); + dataGroupInfoListJson[DATAGROUPINFOLIST_GID].emplace_back(std::to_string(dataGroupInfo.gid)); + std::string dir = JSON_DATA_APP + std::to_string(dataGroupInfo.userId) + + JSON_GROUP + dataGroupInfo.uuid; + dataGroupInfoListJson[DATAGROUPINFOLIST_DIR].emplace_back(dir); } - state_ = SpawnConnectionState::STATE_NOT_CONNECT; + return dataGroupInfoListJson.dump(); } -void AppSpawnClient::SetSocket(const std::shared_ptr socket) +static std::string DumpHspListToJson(const HspList &hspList) { - socket_ = socket; + nlohmann::json hspListJson; + for (auto& hsp : hspList) { + hspListJson[HSPLIST_BUNDLES].emplace_back(hsp.bundleName); + hspListJson[HSPLIST_MODULES].emplace_back(hsp.moduleName); + hspListJson[HSPLIST_VERSIONS].emplace_back(VERSION_PREFIX + std::to_string(hsp.versionCode)); + } + return hspListJson.dump(); } + +static std::string DumpAppEnvToJson(const std::map &appEnv) +{ + nlohmann::json appEnvJson; + for (const auto &[envName, envValue] : appEnv) { + appEnvJson[envName] = envValue; + } + return appEnvJson.dump(); +} + +int32_t AppSpawnClient::SetDacInfo(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle) +{ + int32_t ret = 0; + AppDacInfo appDacInfo = {0}; + appDacInfo.uid = startMsg.uid; + appDacInfo.gid = startMsg.gid; + appDacInfo.gidCount = startMsg.gids.size() + startMsg.dataGroupInfoList.size(); + for (uint32_t i = 0; i < startMsg.gids.size(); i++) { + appDacInfo.gidTable[i] = startMsg.gids[i]; + } + for (uint32_t i = startMsg.gids.size(); i < appDacInfo.gidCount; i++) { + appDacInfo.gidTable[i] = startMsg.dataGroupInfoList[i - startMsg.gids.size()].gid; + } + ret = strcpy_s(appDacInfo.userName, sizeof(appDacInfo.userName), APPSPAWN_CLIENT_USER_NAME.c_str()); + if (ret) { + HILOG_ERROR("failed to set dac userName!"); + return ret; + } + return AppSpawnReqMsgSetAppDacInfo(reqHandle, &appDacInfo); +} + +int32_t AppSpawnClient::SetMountPermission(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle) +{ + int32_t ret = 0; + std::set mountPermissionList = startMsg.permissions; + for (std::string permission : mountPermissionList) { + ret = AppSpawnReqMsgAddPermission(reqHandle, permission.c_str()); + if (ret != 0) { + HILOG_ERROR("AppSpawnReqMsgAddPermission %{public}s failed", permission.c_str()); + return ret; + } + } + + return ret; +} + +int32_t AppSpawnClient::SetStartFlags(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle) +{ + int32_t ret = 0; + uint32_t startFlagTmp = startMsg.flags; + int flagIndex = 0; + while (startFlagTmp > 0) { + if (startFlagTmp & START_FLAG_TEST_NUM) { + ret = AppSpawnReqMsgSetAppFlag(reqHandle, static_cast(flagIndex)); + if (ret != 0) { + HILOG_ERROR("SetFlagIdx %{public}d failed, ret: %{public}d", flagIndex, ret); + return ret; + } + } + startFlagTmp = startFlagTmp >> RIGHT_SHIFT_STEP; + flagIndex++; + } + return ret; +} + +int32_t AppSpawnClient::AppspawnSetExtMsg(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle) +{ + int32_t ret = 0; + if ((ret = AppSpawnReqMsgAddStringInfo(reqHandle, MSG_EXT_NAME_RENDER_CMD, startMsg.renderParam.c_str()))) { + HILOG_ERROR("SetRenderCmd failed, ret: %{public}d", ret); + return ret; + } + + if (!startMsg.hspList.empty() && + (ret = AppSpawnReqMsgAddStringInfo(reqHandle, MSG_EXT_NAME_HSP_LIST, + DumpHspListToJson(startMsg.hspList).c_str()))) { + HILOG_ERROR("SetExtraHspList failed, ret: %{public}d", ret); + return ret; + } + + if (!startMsg.dataGroupInfoList.empty() && + (ret = AppSpawnReqMsgAddStringInfo(reqHandle, MSG_EXT_NAME_DATA_GROUP, + DumpDataGroupInfoListToJson(startMsg.dataGroupInfoList).c_str()))) { + HILOG_ERROR("SetExtraDataGroupInfo failed, ret: %{public}d", ret); + return ret; + } + + if (!startMsg.overlayInfo.empty() && + (ret = AppSpawnReqMsgAddStringInfo(reqHandle, MSG_EXT_NAME_OVERLAY, startMsg.overlayInfo.c_str()))) { + HILOG_ERROR("SetExtraOverlayInfo failed, ret: %{public}d", ret); + return ret; + } + if (!startMsg.appEnv.empty() && + (ret = AppSpawnReqMsgAddStringInfo(reqHandle, MSG_EXT_NAME_APP_ENV, + DumpAppEnvToJson(startMsg.appEnv).c_str()))) { + HILOG_ERROR("SetExtraEnv failed, ret: %{public}d", ret); + return ret; + } + + return ret; +} +int32_t AppSpawnClient::AppspawnCreateDefaultMsg(const AppSpawnStartMsg &startMsg, AppSpawnReqMsgHandle reqHandle) +{ + HILOG_INFO("AppspawnCreateDefaultMsg"); + int32_t ret = 0; + do { + if ((ret = SetDacInfo(startMsg, reqHandle))) { + HILOG_ERROR("SetDacInfo failed, ret: %{public}d", ret); + break; + } + if ((ret = AppSpawnReqMsgSetBundleInfo(reqHandle, startMsg.bundleIndex, startMsg.bundleName.c_str()))) { + HILOG_ERROR("SetBundleInfo failed, ret: %{public}d", ret); + break; + } + if ((ret = AppSpawnReqMsgSetAppInternetPermissionInfo(reqHandle, startMsg.allowInternet, + startMsg.setAllowInternet))) { + HILOG_ERROR("SetInternetPermissionInfo failed, ret: %{public}d", ret); + break; + } + if (startMsg.ownerId.size() && + (ret = AppSpawnReqMsgSetAppOwnerId(reqHandle, startMsg.ownerId.c_str()))) { + HILOG_ERROR("SetOwnerId %{public}s failed, ret: %{public}d", + startMsg.ownerId.c_str(), ret); + break; + } + if ((ret = AppSpawnReqMsgSetAppAccessToken(reqHandle, startMsg.accessTokenIdEx))) { + HILOG_ERROR("SetAccessTokenInfo %{public}llu failed, ret: %{public}d", + startMsg.accessTokenIdEx, ret); + break; + } + if ((ret = AppSpawnReqMsgSetAppDomainInfo(reqHandle, startMsg.hapFlags, startMsg.apl.c_str()))) { + HILOG_ERROR("SetDomainInfo failed, hapFlags is %{public}d, apl is %{public}s, ret: %{public}d", + startMsg.hapFlags, startMsg.apl.c_str(), ret); + break; + } + if ((ret = SetStartFlags(startMsg, reqHandle))) { + HILOG_ERROR("SetStartFlags failed, ret: %{public}d", ret); + break; + } + if ((ret = SetMountPermission(startMsg, reqHandle))) { + HILOG_ERROR("SetMountPermission failed, ret: %{public}d", ret); + break; + } + if (AppspawnSetExtMsg(startMsg, reqHandle)) { + break; + } + + return ret; + } while (0); + + HILOG_INFO("AppSpawnReqMsgFree"); + AppSpawnReqMsgFree(reqHandle); + + return ret; +} + +bool AppSpawnClient::VerifyMsg(const AppSpawnStartMsg &startMsg) +{ + HILOG_INFO("VerifyMsg"); + if (startMsg.code == MSG_APP_SPAWN || + startMsg.code == MSG_SPAWN_NATIVE_PROCESS) { + if (startMsg.uid < 0) { + HILOG_ERROR("invalid uid! [%{public}d]", startMsg.uid); + return false; + } + + if (startMsg.gid < 0) { + HILOG_ERROR("invalid gid! [%{public}d]", startMsg.gid); + return false; + } + + if (startMsg.gids.size() > APP_MAX_GIDS) { + HILOG_ERROR("too many app gids!"); + return false; + } + + for (uint32_t i = 0; i < startMsg.gids.size(); ++i) { + if (startMsg.gids[i] < 0) { + HILOG_ERROR("invalid gids array! [%{public}d]", startMsg.gids[i]); + return false; + } + } + if (startMsg.procName.empty() || startMsg.procName.size() >= MAX_PROC_NAME_LEN) { + HILOG_ERROR("invalid procName!"); + return false; + } + } else if (startMsg.code == MSG_GET_RENDER_TERMINATION_STATUS) { + if (startMsg.pid < 0) { + HILOG_ERROR("invalid pid!"); + return false; + } + } else { + HILOG_ERROR("invalid code!"); + return false; + } + + return true; +} + +// 预启动 +int32_t AppSpawnClient::PreStartNWebSpawnProcess() +{ + HILOG_INFO("PreStartNWebSpawnProcess"); + return OpenConnection(); +} + +int32_t AppSpawnClient::StartProcess(const AppSpawnStartMsg &startMsg, pid_t &pid) +{ + HILOG_INFO("StartProcess"); + HITRACE_METER_NAME(HITRACE_TAG_APP, __PRETTY_FUNCTION__); + if (!VerifyMsg(startMsg)) { + return ERR_INVALID_VALUE; // 入参非法 + } + + int32_t ret = 0; + AppSpawnReqMsgHandle reqHandle = nullptr; + + ret = OpenConnection(); + if (ret != 0) { + return ret; + } + + ret = AppSpawnReqMsgCreate(static_cast(startMsg.code), startMsg.procName.c_str(), &reqHandle); + if (ret != 0) { + HILOG_ERROR("AppSpawnReqMsgCreate faild."); + return ret; + } + + ret = AppspawnCreateDefaultMsg(startMsg, reqHandle); + if (ret != 0) { + return ret; // create msg failed + } + + HILOG_INFO("AppspawnSendMsg"); + AppSpawnResult result = {0}; + ret = AppSpawnClientSendMsg(handle_, reqHandle, &result); + if (ret != 0) { + HILOG_ERROR("appspawn send msg faild!"); + return ret; + } + if (result.pid <= 0) { + HILOG_ERROR("pid invalid!"); + return ERR_APPEXECFWK_INVALID_PID; + } else { + pid = result.pid; + } + HILOG_INFO("pid = [%{public}d]", pid); + return ret; +} + +int32_t AppSpawnClient::GetRenderProcessTerminationStatus(const AppSpawnStartMsg &startMsg, int &status) +{ + HILOG_INFO("GetRenderProcessTerminationStatus"); + int32_t ret = 0; + AppSpawnReqMsgHandle reqHandle = nullptr; + + // 入参校验 + if (!VerifyMsg(startMsg)) { + return ERR_INVALID_VALUE; // 入参非法 + } + + ret = OpenConnection(); + if (ret != 0) { + return ret; + } + + ret = AppSpawnTerminateMsgCreate(startMsg.pid, &reqHandle); + if (ret != 0) { + HILOG_ERROR("AppSpawnTerminateMsgCreate faild."); + return ret; + } + + HILOG_INFO("AppspawnSendMsg"); + AppSpawnResult result = {0}; + ret = AppSpawnClientSendMsg(handle_, reqHandle, &result); + status = result.result; + if (ret != 0) { + HILOG_ERROR("appspawn send msg faild!"); + return ret; + } + HILOG_INFO("status = [%{public}d]", status); + + return ret; +} + } // namespace AppExecFwk } // namespace OHOS diff --git a/test/fuzztest/abilitymgrrest_fuzzer/BUILD.gn b/test/fuzztest/abilitymgrrest_fuzzer/BUILD.gn index bb64bd7298..ce5b88b18b 100755 --- a/test/fuzztest/abilitymgrrest_fuzzer/BUILD.gn +++ b/test/fuzztest/abilitymgrrest_fuzzer/BUILD.gn @@ -48,13 +48,14 @@ ohos_fuzztest("AbilityMgrRestFuzzTest") { "ability_base:want", "ability_base:zuri", "ability_runtime:ability_deps_wrapper", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", "napi:ace_napi", "safwk:system_ability_fwk", diff --git a/test/fuzztest/amsmanager_fuzzer/BUILD.gn b/test/fuzztest/amsmanager_fuzzer/BUILD.gn index 7433acc67a..01de1a1314 100644 --- a/test/fuzztest/amsmanager_fuzzer/BUILD.gn +++ b/test/fuzztest/amsmanager_fuzzer/BUILD.gn @@ -42,6 +42,7 @@ ohos_fuzztest("AmsManagerFuzzTest") { external_deps = [ "ability_base:want", "ability_base:zuri", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/fuzztest/amsmgrscheduler_fuzzer/BUILD.gn b/test/fuzztest/amsmgrscheduler_fuzzer/BUILD.gn index 35f8631709..f0c7615ab7 100755 --- a/test/fuzztest/amsmgrscheduler_fuzzer/BUILD.gn +++ b/test/fuzztest/amsmgrscheduler_fuzzer/BUILD.gn @@ -47,12 +47,13 @@ ohos_fuzztest("AmsMgrSchedulerFuzzTest") { "ability_base:session_info", "ability_base:want", "ability_base:zuri", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", + "init:libbegetutil", "ipc:ipc_core", "napi:ace_napi", "safwk:system_ability_fwk", diff --git a/test/fuzztest/appmanager_fuzzer/BUILD.gn b/test/fuzztest/appmanager_fuzzer/BUILD.gn index b808c07fab..ae9f279c9b 100644 --- a/test/fuzztest/appmanager_fuzzer/BUILD.gn +++ b/test/fuzztest/appmanager_fuzzer/BUILD.gn @@ -48,10 +48,12 @@ ohos_fuzztest("AppManagerFuzzTest") { external_deps = [ "ability_base:want", "ability_base:zuri", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "ffrt:libffrt", + "init:libbegetutil", "ipc:ipc_core", "safwk:system_ability_fwk", "samgr:samgr_proxy", diff --git a/test/fuzztest/appmgrrest_fuzzer/BUILD.gn b/test/fuzztest/appmgrrest_fuzzer/BUILD.gn index 9d73eec23c..b239b0ab2e 100755 --- a/test/fuzztest/appmgrrest_fuzzer/BUILD.gn +++ b/test/fuzztest/appmgrrest_fuzzer/BUILD.gn @@ -45,12 +45,13 @@ ohos_fuzztest("AppMgrRestFuzzTest") { "ability_base:session_info", "ability_base:want", "ability_base:zuri", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", + "init:libbegetutil", "ipc:ipc_core", "napi:ace_napi", "safwk:system_ability_fwk", diff --git a/test/fuzztest/appmgrrest_fuzzer/appmgrrest_fuzzer.cpp b/test/fuzztest/appmgrrest_fuzzer/appmgrrest_fuzzer.cpp index f91110e73f..ce55c02100 100755 --- a/test/fuzztest/appmgrrest_fuzzer/appmgrrest_fuzzer.cpp +++ b/test/fuzztest/appmgrrest_fuzzer/appmgrrest_fuzzer.cpp @@ -23,9 +23,7 @@ #include "app_process_manager.h" #define private public #include "app_spawn_client.h" -#include "app_spawn_msg_wrapper.h" #undef private -#include "app_spawn_socket.h" #include "remote_client_manager.h" #include "window_focus_changed_listener.h" #include "ability_record.h" @@ -96,29 +94,12 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size) appProcessManager.ClearRecentAppList(); AppSpawnClient appSpawnClient; appSpawnClient.OpenConnection(); - std::shared_ptr socket; - appSpawnClient.SetSocket(socket); appSpawnClient.PreStartNWebSpawnProcess(); - appSpawnClient.PreStartNWebSpawnProcessImpl(); AppSpawnStartMsg startMsg; appSpawnClient.StartProcess(startMsg, pid); int status = static_cast(GetU32Data(data)); appSpawnClient.GetRenderProcessTerminationStatus(startMsg, status); appSpawnClient.QueryConnectionState(); - appSpawnClient.CloseConnection(); - AppSpawnMsgWrapper appSpawnMsgWrapper; - appSpawnMsgWrapper.AssembleMsg(startMsg); - appSpawnMsgWrapper.VerifyMsg(startMsg); - appSpawnMsgWrapper.DumpMsg(); - appSpawnMsgWrapper.FreeMsg(); - AppSpawnSocket appSpawnSocket; - std::shared_ptr clientSocket; - appSpawnSocket.SetClientSocket(clientSocket); - appSpawnSocket.OpenAppSpawnConnection(); - int32_t len = appSpawnMsgWrapper.GetMsgLength(); - appSpawnSocket.WriteMessage(appSpawnMsgWrapper.GetMsgBuf(), len); - appSpawnSocket.ReadMessage(reinterpret_cast(*data), len); - appSpawnSocket.CloseAppSpawnConnection(); RemoteClientManager remoteClientManager; std::shared_ptr bundleManagerHelper = nullptr; remoteClientManager.SetBundleManagerHelper(bundleManagerHelper); @@ -132,7 +113,7 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size) sptr focusChangeInfo = nullptr; windowFocusChangedListener.OnFocused(focusChangeInfo); windowFocusChangedListener.OnUnfocused(focusChangeInfo); - return (appSpawnClient.StartProcessImpl(startMsg, pid) != 0); + return (appSpawnClient.StartProcess(startMsg, pid) != 0); } } diff --git a/test/fuzztest/appmgrservicefirst_fuzzer/BUILD.gn b/test/fuzztest/appmgrservicefirst_fuzzer/BUILD.gn index 1530fc708a..28adb930cb 100755 --- a/test/fuzztest/appmgrservicefirst_fuzzer/BUILD.gn +++ b/test/fuzztest/appmgrservicefirst_fuzzer/BUILD.gn @@ -24,10 +24,7 @@ ohos_fuzztest("AppMgrServiceFirstFuzzTest") { fuzz_config_file = "${ability_runtime_test_path}/fuzztest/appmgrservicefirst_fuzzer" - include_dirs = [ - "${ability_runtime_services_path}/appmgr/include", - "${appspawn_path}/interfaces/innerkits/include", - ] + include_dirs = [ "${ability_runtime_services_path}/appmgr/include" ] cflags = [ "-g", "-O0", @@ -50,12 +47,13 @@ ohos_fuzztest("AppMgrServiceFirstFuzzTest") { "ability_base:configuration", "ability_base:want", "ability_base:zuri", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", + "init:libbegetutil", "ipc:ipc_core", "napi:ace_napi", "safwk:system_ability_fwk", diff --git a/test/mock/services_appmgr_test/include/mock_app_spawn_client.h b/test/mock/services_appmgr_test/include/mock_app_spawn_client.h index bcd4a54f59..48121b1939 100644 --- a/test/mock/services_appmgr_test/include/mock_app_spawn_client.h +++ b/test/mock/services_appmgr_test/include/mock_app_spawn_client.h @@ -22,10 +22,12 @@ namespace OHOS { namespace AppExecFwk { class MockAppSpawnClient : public AppSpawnClient { public: - MockAppSpawnClient() + MockAppSpawnClient(): AppSpawnClient(false) {} virtual ~MockAppSpawnClient() {} + MOCK_METHOD0(OpenConnection, ErrCode()); + MOCK_METHOD0(CloseConnection, void()); MOCK_METHOD2(StartProcess, ErrCode(const AppSpawnStartMsg& startMsg, pid_t& pid)); }; } // namespace AppExecFwk diff --git a/test/mock/services_appmgr_test/include/mock_app_spawn_socket.h b/test/mock/services_appmgr_test/include/mock_app_spawn_socket.h deleted file mode 100644 index 7c82888f91..0000000000 --- a/test/mock/services_appmgr_test/include/mock_app_spawn_socket.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef MOCK_OHOS_ABILITY_RUNTIME_MOCK_APP_SPAWN_SOCKET_H -#define MOCK_OHOS_ABILITY_RUNTIME_MOCK_APP_SPAWN_SOCKET_H - -#include "gmock/gmock.h" -#include "app_spawn_socket.h" -#include "app_spawn_msg_wrapper.h" -#include "hilog_wrapper.h" -#include "securec.h" - -namespace OHOS { -namespace AppExecFwk { -class MockAppSpawnSocket : public AppSpawnSocket { -public: - MockAppSpawnSocket() : AppSpawnSocket(false) {} - virtual ~MockAppSpawnSocket() = default; - - MOCK_METHOD0(OpenAppSpawnConnection, ErrCode()); - MOCK_METHOD0(CloseAppSpawnConnection, void()); - MOCK_METHOD2(WriteMessage, ErrCode(const void* buf, const int32_t len)); - MOCK_METHOD2(ReadMessage, ErrCode(void* buf, int32_t len)); - ErrCode ReadImpl(void* buf, [[maybe_unused]] int32_t len) - { - if (buf == nullptr) { - return ERR_NO_MEMORY; - } - AppSpawnPidMsg msg; - msg.pid = expectPid_; - if (memcpy_s(buf, sizeof(msg), msg.pidBuf, sizeof(msg)) != 0) { - return ERR_APPEXECFWK_ASSEMBLE_START_MSG_FAILED; - } - return ERR_OK; - } - - void SetExpectPid(int32_t expectPid) - { - expectPid_ = expectPid; - } - -private: - int32_t expectPid_ = 0; -}; -} // namespace AppExecFwk -} // namespace OHOS -#endif // MOCK_OHOS_ABILITY_RUNTIME_MOCK_APP_SPAWN_SOCKET_H diff --git a/test/moduletest/common/ams/BUILD.gn b/test/moduletest/common/ams/BUILD.gn index d1117e1371..7c2c4c6f93 100644 --- a/test/moduletest/common/ams/BUILD.gn +++ b/test/moduletest/common/ams/BUILD.gn @@ -52,7 +52,6 @@ ohos_source_set("appmgr_mst_source") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_services_path}/common:perm_verification", - "${appspawn_path}/interfaces/innerkits:appspawn_socket_client", "${bundlefwk_inner_api_path}/appexecfwk_base:appexecfwk_base", "${bundlefwk_inner_api_path}/appexecfwk_core:appexecfwk_core", "${c_utils_base_path}:utils", @@ -67,8 +66,10 @@ ohos_source_set("appmgr_mst_source") { "ability_base:want", "ability_runtime:ability_deps_wrapper", "access_token:libaccesstoken_sdk", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_core", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", @@ -77,6 +78,7 @@ ohos_source_set("appmgr_mst_source") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", ] @@ -106,8 +108,6 @@ group("moduletest") { "ipc_ams_mgr_test:moduletest", "ipc_app_mgr_test:moduletest", "ipc_app_scheduler_test:moduletest", - "service_app_spawn_client_test:moduletest", - "service_event_drive_test:moduletest", "service_start_process_test:moduletest", "specified_ability_service_test:moduletest", ] diff --git a/test/moduletest/common/ams/ability_running_record_test/BUILD.gn b/test/moduletest/common/ams/ability_running_record_test/BUILD.gn index cd492a4417..c89dcd58d4 100644 --- a/test/moduletest/common/ams/ability_running_record_test/BUILD.gn +++ b/test/moduletest/common/ams/ability_running_record_test/BUILD.gn @@ -31,6 +31,7 @@ ohos_moduletest("AmsAbilityRunningRecordModuleTest") { ] external_deps = [ + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/test/moduletest/common/ams/app_life_cycle_test/ams_app_life_cycle_module_test.cpp b/test/moduletest/common/ams/app_life_cycle_test/ams_app_life_cycle_module_test.cpp index da8cc2307b..a716d2ec4f 100644 --- a/test/moduletest/common/ams/app_life_cycle_test/ams_app_life_cycle_module_test.cpp +++ b/test/moduletest/common/ams/app_life_cycle_test/ams_app_life_cycle_module_test.cpp @@ -30,7 +30,6 @@ #include "mock_ability_token.h" #include "mock_app_scheduler.h" #include "mock_app_spawn_client.h" -#include "mock_app_spawn_socket.h" #include "mock_iapp_state_callback.h" #include "mock_native_token.h" #include "system_ability_definition.h" @@ -929,20 +928,12 @@ HWTEST_F(AmsAppLifeCycleModuleTest, StateChange_013, TestSize.Level3) EXPECT_TRUE(serviceInner_->remoteClientManager_); EXPECT_TRUE(serviceInner_->remoteClientManager_->GetSpawnClient()); - auto mockAppSpawnSocket = std::make_shared(); - EXPECT_TRUE(mockAppSpawnSocket); - serviceInner_->remoteClientManager_->GetSpawnClient()->SetSocket(mockAppSpawnSocket); - EXPECT_EQ(serviceInner_->QueryAppSpawnConnectionState(), SpawnConnectionState::STATE_NOT_CONNECT); - EXPECT_CALL(*mockAppSpawnSocket, OpenAppSpawnConnection()).Times(1).WillOnce(Return(0)); - int ret = serviceInner_->OpenAppSpawnConnection(); EXPECT_EQ(ret, 0); EXPECT_EQ(serviceInner_->QueryAppSpawnConnectionState(), SpawnConnectionState::STATE_CONNECTED); - EXPECT_CALL(*mockAppSpawnSocket, CloseAppSpawnConnection()).Times(1); - serviceInner_->OnStop(); usleep(50000); EXPECT_EQ(serviceInner_->QueryAppSpawnConnectionState(), SpawnConnectionState::STATE_NOT_CONNECT); diff --git a/test/moduletest/common/ams/app_mgr_service_test/BUILD.gn b/test/moduletest/common/ams/app_mgr_service_test/BUILD.gn index c81e31ccb7..103fb2b2c7 100644 --- a/test/moduletest/common/ams/app_mgr_service_test/BUILD.gn +++ b/test/moduletest/common/ams/app_mgr_service_test/BUILD.gn @@ -38,6 +38,7 @@ ohos_moduletest("AmsAppMgrServiceModuleTest") { external_deps = [ "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/test/moduletest/common/ams/app_mgr_service_test/ams_app_mgr_service_module_test.cpp b/test/moduletest/common/ams/app_mgr_service_test/ams_app_mgr_service_module_test.cpp index 88e420f7ab..05ffe444cc 100644 --- a/test/moduletest/common/ams/app_mgr_service_test/ams_app_mgr_service_module_test.cpp +++ b/test/moduletest/common/ams/app_mgr_service_test/ams_app_mgr_service_module_test.cpp @@ -24,7 +24,6 @@ #include "app_scheduler_host.h" #include "app_scheduler_proxy.h" #include "mock_app_mgr_service_inner.h" -#include "mock_app_spawn_socket.h" #include "mock_native_token.h" #include "semaphore_ex.h" diff --git a/test/moduletest/common/ams/app_recent_list_test/BUILD.gn b/test/moduletest/common/ams/app_recent_list_test/BUILD.gn index 6cadac3137..770e73ab65 100644 --- a/test/moduletest/common/ams/app_recent_list_test/BUILD.gn +++ b/test/moduletest/common/ams/app_recent_list_test/BUILD.gn @@ -33,6 +33,7 @@ ohos_moduletest("AmsAppRecentListModuleTest") { ] external_deps = [ + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/test/moduletest/common/ams/app_running_processes_info_module_test/BUILD.gn b/test/moduletest/common/ams/app_running_processes_info_module_test/BUILD.gn index 063bb64b30..07852d91f5 100644 --- a/test/moduletest/common/ams/app_running_processes_info_module_test/BUILD.gn +++ b/test/moduletest/common/ams/app_running_processes_info_module_test/BUILD.gn @@ -40,6 +40,7 @@ ohos_moduletest("AppRunningProcessesInfoModuleTest") { "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "ffrt:libffrt", "hilog:libhilog", diff --git a/test/moduletest/common/ams/app_service_flow_test/BUILD.gn b/test/moduletest/common/ams/app_service_flow_test/BUILD.gn index 7638a9d9c8..7d5cc1d383 100644 --- a/test/moduletest/common/ams/app_service_flow_test/BUILD.gn +++ b/test/moduletest/common/ams/app_service_flow_test/BUILD.gn @@ -35,6 +35,7 @@ ohos_moduletest("AmsAppServiceFlowModuleTest") { ] external_deps = [ + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/test/moduletest/common/ams/ipc_ams_mgr_test/BUILD.gn b/test/moduletest/common/ams/ipc_ams_mgr_test/BUILD.gn index 71e27ad188..af9a94ec51 100644 --- a/test/moduletest/common/ams/ipc_ams_mgr_test/BUILD.gn +++ b/test/moduletest/common/ams/ipc_ams_mgr_test/BUILD.gn @@ -41,6 +41,7 @@ ohos_moduletest("AmsIpcAmsmgrModuleTest") { external_deps = [ "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/test/moduletest/common/ams/service_app_spawn_client_test/BUILD.gn b/test/moduletest/common/ams/service_app_spawn_client_test/BUILD.gn deleted file mode 100644 index cbd69fd7c8..0000000000 --- a/test/moduletest/common/ams/service_app_spawn_client_test/BUILD.gn +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright (c) 2021-2022 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build/test.gni") -import("//foundation/ability/ability_runtime/ability_runtime.gni") - -module_output_path = "ability_runtime/mstappmgrservice" - -ohos_moduletest("AmsServiceAppSpawnClientModuleTest") { - module_out_path = module_output_path - - include_dirs = [ - "${ability_runtime_test_path}/mock/services_appmgr_test/include", - "${ability_runtime_path}/interfaces/kits/native/appkit/ability_bundle_manager_helper", - ] - - defines = [ "usleep(time) = MockSleep(time)" ] - - sources = [ "ams_service_app_spawn_client_module_test.cpp" ] - - deps = [ - "${ability_runtime_services_path}/common:perm_verification", - "${ability_runtime_test_path}/moduletest/common/ams:appmgr_mst_source", - ] - - external_deps = [ - "bundle_framework:appexecfwk_base", - "ffrt:libffrt", - "hicollie:libhicollie", - "hilog:libhilog", - "ipc:ipc_core", - "safwk:system_ability_fwk", - ] - - if (ability_runtime_graphics) { - deps += [ - "${ability_runtime_native_path}/appkit:appkit_manager_helper", - "${global_path}/i18n/frameworks/intl:intl_util", - ] - external_deps += [ "window_manager:libwm" ] - } - - if (background_task_mgr_continuous_task_enable) { - external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ] - } -} - -group("moduletest") { - testonly = true - - deps = [ ":AmsServiceAppSpawnClientModuleTest" ] -} diff --git a/test/moduletest/common/ams/service_start_process_test/BUILD.gn b/test/moduletest/common/ams/service_start_process_test/BUILD.gn index cab8accd49..92f334df19 100644 --- a/test/moduletest/common/ams/service_start_process_test/BUILD.gn +++ b/test/moduletest/common/ams/service_start_process_test/BUILD.gn @@ -33,6 +33,7 @@ ohos_moduletest("AmsServiceStartModuleTest") { ] external_deps = [ + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/test/unittest/BUILD.gn b/test/unittest/BUILD.gn index 4af56576e8..35332718a3 100644 --- a/test/unittest/BUILD.gn +++ b/test/unittest/BUILD.gn @@ -365,9 +365,6 @@ group("unittest") { "ams_mgr_scheduler_test:unittest", "ams_mgr_stub_test:unittest", "ams_recent_app_list_test:unittest", - "ams_service_app_spawn_client_test:unittest", - "ams_service_app_spawn_msg_wrapper_test:unittest", - "ams_service_app_spawn_socket_test:unittest", "ams_service_load_ability_process_test:unittest", "ams_service_startup_test:unittest", "app_debug_info_test:unittest", @@ -395,7 +392,6 @@ group("unittest") { "app_scheduler_proxy_test:unittest", "app_scheduler_test:unittest", "app_spawn_client_test:unittest", - "app_spawn_socket_test:unittest", "app_state_observer_manager_test:unittest", "app_utils_test:unittest", "appkit:unittest", diff --git a/test/unittest/ams_ability_running_record_test/BUILD.gn b/test/unittest/ams_ability_running_record_test/BUILD.gn index 1a9f9b3a55..3a738012d9 100644 --- a/test/unittest/ams_ability_running_record_test/BUILD.gn +++ b/test/unittest/ams_ability_running_record_test/BUILD.gn @@ -36,8 +36,6 @@ ohos_unittest("AmsAbilityRunningRecordTest") { "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_status_module.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/child_process_record.cpp", "${ability_runtime_services_path}/appmgr/src/render_state_observer_manager.cpp", @@ -67,14 +65,16 @@ ohos_unittest("AmsAbilityRunningRecordTest") { external_deps = [ "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/ams_app_death_recipient_test/BUILD.gn b/test/unittest/ams_app_death_recipient_test/BUILD.gn index 7bf4b66e46..430d3aeaf2 100644 --- a/test/unittest/ams_app_death_recipient_test/BUILD.gn +++ b/test/unittest/ams_app_death_recipient_test/BUILD.gn @@ -55,15 +55,17 @@ ohos_unittest("AppDeathRecipientTest") { "ability_base:want", "ability_runtime:ability_deps_wrapper", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", ] diff --git a/test/unittest/ams_app_life_cycle_test/BUILD.gn b/test/unittest/ams_app_life_cycle_test/BUILD.gn index ec7f7b81de..45be3513b8 100644 --- a/test/unittest/ams_app_life_cycle_test/BUILD.gn +++ b/test/unittest/ams_app_life_cycle_test/BUILD.gn @@ -36,8 +36,6 @@ ohos_unittest("AmsAppLifeCycleTest") { "${ability_runtime_services_path}/appmgr/src/app_running_manager.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/module_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/remote_client_manager.cpp", @@ -64,14 +62,16 @@ ohos_unittest("AmsAppLifeCycleTest") { "ability_base:want", "ability_runtime:ability_deps_wrapper", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/ams_app_life_cycle_test/ams_app_life_cycle_test.cpp b/test/unittest/ams_app_life_cycle_test/ams_app_life_cycle_test.cpp index 868b10c6a7..073eed3515 100644 --- a/test/unittest/ams_app_life_cycle_test/ams_app_life_cycle_test.cpp +++ b/test/unittest/ams_app_life_cycle_test/ams_app_life_cycle_test.cpp @@ -26,7 +26,6 @@ #include "mock_ability_token.h" #include "mock_app_scheduler.h" #include "mock_app_spawn_client.h" -#include "mock_app_spawn_socket.h" #include "mock_iapp_state_callback.h" #include "mock_bundle_manager.h" @@ -1326,8 +1325,7 @@ HWTEST_F(AmsAppLifeCycleTest, Stop_001, TestSize.Level1) HWTEST_F(AmsAppLifeCycleTest, Stop_002, TestSize.Level1) { std::shared_ptr appSpawnClient = std::make_shared(); - std::shared_ptr socketMock = std::make_shared(); - appSpawnClient->SetSocket(socketMock); + std::shared_ptr socketMock = std::make_shared(); EXPECT_EQ(SpawnConnectionState::STATE_NOT_CONNECT, appSpawnClient->QueryConnectionState()); EXPECT_CALL(*socketMock, OpenAppSpawnConnection()).WillOnce(Return(ERR_OK)); serviceInner_->SetAppSpawnClient(appSpawnClient); @@ -1367,8 +1365,6 @@ HWTEST_F(AmsAppLifeCycleTest, Stop_003, TestSize.Level1) EXPECT_EQ(appState, appRecord->GetState()); std::shared_ptr appSpawnClient = std::make_shared(); - std::shared_ptr socketMock = std::make_shared(); - appSpawnClient->SetSocket(socketMock); EXPECT_EQ(SpawnConnectionState::STATE_NOT_CONNECT, appSpawnClient->QueryConnectionState()); EXPECT_CALL(*socketMock, OpenAppSpawnConnection()).WillOnce(Return(ERR_OK)); serviceInner_->SetAppSpawnClient(appSpawnClient); diff --git a/test/unittest/ams_app_mgr_client_test/BUILD.gn b/test/unittest/ams_app_mgr_client_test/BUILD.gn index 35e389135d..4f5e57b103 100644 --- a/test/unittest/ams_app_mgr_client_test/BUILD.gn +++ b/test/unittest/ams_app_mgr_client_test/BUILD.gn @@ -52,6 +52,7 @@ ohos_unittest("AmsAppMgrClientTest") { "ability_base:want", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", "c_utils:utils", "common_event_service:cesfwk_innerkits", diff --git a/test/unittest/ams_app_running_record_test/BUILD.gn b/test/unittest/ams_app_running_record_test/BUILD.gn index ca5686f886..99ef9d3fd1 100644 --- a/test/unittest/ams_app_running_record_test/BUILD.gn +++ b/test/unittest/ams_app_running_record_test/BUILD.gn @@ -53,11 +53,13 @@ ohos_unittest("AmsAppRunningRecordTest") { external_deps = [ "ability_base:configuration", "ability_base:want", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "ffrt:libffrt", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", ] diff --git a/test/unittest/ams_app_workflow_test/BUILD.gn b/test/unittest/ams_app_workflow_test/BUILD.gn index 808a160277..d480fc676f 100644 --- a/test/unittest/ams_app_workflow_test/BUILD.gn +++ b/test/unittest/ams_app_workflow_test/BUILD.gn @@ -37,8 +37,6 @@ ohos_unittest("AmsWorkFlowTest") { "${ability_runtime_services_path}/appmgr/src/app_running_manager.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/module_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/remote_client_manager.cpp", @@ -63,14 +61,16 @@ ohos_unittest("AmsWorkFlowTest") { "ability_base:want", "ability_runtime:ability_deps_wrapper", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/ams_mgr_kill_process_test/BUILD.gn b/test/unittest/ams_mgr_kill_process_test/BUILD.gn index 8119999794..50063fb828 100644 --- a/test/unittest/ams_mgr_kill_process_test/BUILD.gn +++ b/test/unittest/ams_mgr_kill_process_test/BUILD.gn @@ -60,6 +60,7 @@ ohos_unittest("AmsMgrKillProcessTest") { "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/unittest/ams_mgr_proxy_test/BUILD.gn b/test/unittest/ams_mgr_proxy_test/BUILD.gn index eeab9af11d..9beef7fa1f 100644 --- a/test/unittest/ams_mgr_proxy_test/BUILD.gn +++ b/test/unittest/ams_mgr_proxy_test/BUILD.gn @@ -43,11 +43,13 @@ ohos_unittest("AmsMgrProxyTest") { "ability_base:configuration", "ability_base:want", "ability_runtime:app_manager", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "ffrt:libffrt", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] diff --git a/test/unittest/ams_mgr_scheduler_dump_test/BUILD.gn b/test/unittest/ams_mgr_scheduler_dump_test/BUILD.gn index bf26300775..4987d41a2b 100644 --- a/test/unittest/ams_mgr_scheduler_dump_test/BUILD.gn +++ b/test/unittest/ams_mgr_scheduler_dump_test/BUILD.gn @@ -34,6 +34,7 @@ ohos_unittest("ams_mgr_scheduler_dump_test") { "ability_base:configuration", "ability_base:want", "ability_runtime:app_manager", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/unittest/ams_mgr_scheduler_test/BUILD.gn b/test/unittest/ams_mgr_scheduler_test/BUILD.gn index c93e2a9afb..b3a2bdf713 100644 --- a/test/unittest/ams_mgr_scheduler_test/BUILD.gn +++ b/test/unittest/ams_mgr_scheduler_test/BUILD.gn @@ -52,6 +52,7 @@ ohos_unittest("ams_mgr_scheduler_test") { "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", "ffrt:libffrt", "hilog:libhilog", diff --git a/test/unittest/ams_mgr_stub_test/BUILD.gn b/test/unittest/ams_mgr_stub_test/BUILD.gn index 552c03a8ce..2e12ee1185 100644 --- a/test/unittest/ams_mgr_stub_test/BUILD.gn +++ b/test/unittest/ams_mgr_stub_test/BUILD.gn @@ -41,11 +41,13 @@ ohos_unittest("AmsMgrStubTest") { external_deps = [ "ability_base:want", "ability_runtime:app_manager", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "ffrt:libffrt", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] diff --git a/test/unittest/ams_recent_app_list_test/BUILD.gn b/test/unittest/ams_recent_app_list_test/BUILD.gn index 296b0599a0..d9ac4fe912 100644 --- a/test/unittest/ams_recent_app_list_test/BUILD.gn +++ b/test/unittest/ams_recent_app_list_test/BUILD.gn @@ -38,8 +38,6 @@ ohos_unittest("AmsRecentAppListTest") { "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_status_module.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/child_process_record.cpp", "${ability_runtime_services_path}/appmgr/src/module_running_record.cpp", @@ -76,15 +74,17 @@ ohos_unittest("AmsRecentAppListTest") { "ability_base:want", "ability_runtime:ability_deps_wrapper", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/ams_service_app_spawn_client_test/BUILD.gn b/test/unittest/ams_service_app_spawn_client_test/BUILD.gn index 7729675cdd..7031fd1cef 100644 --- a/test/unittest/ams_service_app_spawn_client_test/BUILD.gn +++ b/test/unittest/ams_service_app_spawn_client_test/BUILD.gn @@ -72,7 +72,7 @@ ohos_unittest("AmsServiceAppSpawnClientTest") { external_deps = [ "ability_base:want", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", @@ -81,6 +81,7 @@ ohos_unittest("AmsServiceAppSpawnClientTest") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/ams_service_app_spawn_msg_wrapper_test/BUILD.gn b/test/unittest/ams_service_app_spawn_msg_wrapper_test/BUILD.gn deleted file mode 100644 index 50290f6649..0000000000 --- a/test/unittest/ams_service_app_spawn_msg_wrapper_test/BUILD.gn +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright (c) 2021 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build/test.gni") -import("//foundation/ability/ability_runtime/ability_runtime.gni") - -module_output_path = "ability_runtime/appmgrservice" - -ohos_unittest("AmsServiceAppSpawnMsgWrapperTest") { - module_out_path = module_output_path - cflags_cc = [] - include_dirs = [] - - defines = [ "usleep(time) = MockSleep(time)" ] - - sources = [ - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", - ] - - sources += [ "ams_service_app_spawn_msg_wrapper_test.cpp" ] - cflags = [] - if (target_cpu == "arm") { - cflags += [ "-DBINDER_IPC_32BIT" ] - } - configs = [] - - deps = [ "${ability_runtime_test_path}/unittest:appmgr_test_source" ] - - external_deps = [ - "hilog:libhilog", - "ipc:ipc_core", - ] -} - -group("unittest") { - testonly = true - - deps = [ ":AmsServiceAppSpawnMsgWrapperTest" ] -} diff --git a/test/unittest/ams_service_app_spawn_socket_test/BUILD.gn b/test/unittest/ams_service_app_spawn_socket_test/BUILD.gn deleted file mode 100644 index 81398a3bc6..0000000000 --- a/test/unittest/ams_service_app_spawn_socket_test/BUILD.gn +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2021 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build/test.gni") -import("//foundation/ability/ability_runtime/ability_runtime.gni") - -module_output_path = "ability_runtime/appmgrservice" - -ohos_unittest("AmsServiceAppSpawnSocketTest") { - module_out_path = module_output_path - cflags_cc = [] - include_dirs = [ "${appspawn_path}/test/mock/include" ] - - defines = [ "usleep(time) = MockSleep(time)" ] - - sources = - [ "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp" ] - - sources += [ "ams_service_app_spawn_socket_test.cpp" ] - - cflags = [] - if (target_cpu == "arm") { - cflags += [ "-DBINDER_IPC_32BIT" ] - } - deps = [ "${ability_runtime_test_path}/unittest:appmgr_test_source" ] - - external_deps = [ - "appspawn:appspawn_socket_client", - "hilog:libhilog", - "ipc:ipc_core", - ] -} - -group("unittest") { - testonly = true - - deps = [ ":AmsServiceAppSpawnSocketTest" ] -} diff --git a/test/unittest/ams_service_event_drive_test/BUILD.gn b/test/unittest/ams_service_event_drive_test/BUILD.gn index 25cff1cde0..808ebaa862 100644 --- a/test/unittest/ams_service_event_drive_test/BUILD.gn +++ b/test/unittest/ams_service_event_drive_test/BUILD.gn @@ -42,8 +42,6 @@ ohos_unittest("AmsServiceEventDriveTest") { "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_status_module.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/child_process_record.cpp", "${ability_runtime_services_path}/appmgr/src/render_state_observer_manager.cpp", @@ -76,9 +74,10 @@ ohos_unittest("AmsServiceEventDriveTest") { "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hicollie:libhicollie", @@ -86,6 +85,7 @@ ohos_unittest("AmsServiceEventDriveTest") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/ams_service_load_ability_process_test/BUILD.gn b/test/unittest/ams_service_load_ability_process_test/BUILD.gn index cd4c6f1e39..34ed73dbe0 100644 --- a/test/unittest/ams_service_load_ability_process_test/BUILD.gn +++ b/test/unittest/ams_service_load_ability_process_test/BUILD.gn @@ -38,8 +38,6 @@ ohos_unittest("AmsServiceLoadAbilityProcessTest") { "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_status_module.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/child_process_record.cpp", "${ability_runtime_services_path}/appmgr/src/module_running_record.cpp", @@ -78,15 +76,17 @@ ohos_unittest("AmsServiceLoadAbilityProcessTest") { "ability_base:want", "ability_runtime:ability_deps_wrapper", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/ams_service_startup_test/BUILD.gn b/test/unittest/ams_service_startup_test/BUILD.gn index 2943166853..cdae43074d 100644 --- a/test/unittest/ams_service_startup_test/BUILD.gn +++ b/test/unittest/ams_service_startup_test/BUILD.gn @@ -39,8 +39,6 @@ ohos_unittest("AmsServiceStartupTest") { "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_status_module.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/child_process_record.cpp", "${ability_runtime_services_path}/appmgr/src/render_state_observer_manager.cpp", @@ -71,7 +69,7 @@ ohos_unittest("AmsServiceStartupTest") { external_deps = [ "ability_base:want", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", "c_utils:utils", "common_event_service:cesfwk_innerkits", @@ -81,6 +79,7 @@ ohos_unittest("AmsServiceStartupTest") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/app_debug_info_test/BUILD.gn b/test/unittest/app_debug_info_test/BUILD.gn index cc84f58097..d2ad53fe84 100644 --- a/test/unittest/app_debug_info_test/BUILD.gn +++ b/test/unittest/app_debug_info_test/BUILD.gn @@ -36,11 +36,13 @@ ohos_unittest("AppDebugInfoTest") { external_deps = [ "ability_base:want", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "ffrt:libffrt", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", "window_manager:libwm", diff --git a/test/unittest/app_debug_listener_proxy_test/BUILD.gn b/test/unittest/app_debug_listener_proxy_test/BUILD.gn index 363ffe2a48..42303a4b80 100644 --- a/test/unittest/app_debug_listener_proxy_test/BUILD.gn +++ b/test/unittest/app_debug_listener_proxy_test/BUILD.gn @@ -35,10 +35,12 @@ ohos_unittest("AppDebugListenerProxyTest") { ] external_deps = [ - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", ] } diff --git a/test/unittest/app_debug_listener_stub_test/BUILD.gn b/test/unittest/app_debug_listener_stub_test/BUILD.gn index 6d380a0210..919081098d 100644 --- a/test/unittest/app_debug_listener_stub_test/BUILD.gn +++ b/test/unittest/app_debug_listener_stub_test/BUILD.gn @@ -33,11 +33,13 @@ ohos_unittest("AppDebugListenerStubTest") { external_deps = [ "ability_base:want", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "ffrt:libffrt", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] diff --git a/test/unittest/app_debug_manager_test/BUILD.gn b/test/unittest/app_debug_manager_test/BUILD.gn index fc59c8df7b..04d746c632 100644 --- a/test/unittest/app_debug_manager_test/BUILD.gn +++ b/test/unittest/app_debug_manager_test/BUILD.gn @@ -39,10 +39,12 @@ ohos_unittest("app_debug_manager_test") { ] external_deps = [ - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", ] } diff --git a/test/unittest/app_launch_data_test/BUILD.gn b/test/unittest/app_launch_data_test/BUILD.gn index b0d9a02a29..35110cdc73 100644 --- a/test/unittest/app_launch_data_test/BUILD.gn +++ b/test/unittest/app_launch_data_test/BUILD.gn @@ -33,9 +33,12 @@ ohos_unittest("app_launch_data_test") { ] external_deps = [ - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", + "c_utils:utils", "hilog:libhilog", + "init:libbegetutil", + "ipc:ipc_core", ] } diff --git a/test/unittest/app_mgr_service_dump_test/BUILD.gn b/test/unittest/app_mgr_service_dump_test/BUILD.gn index fa6b425d21..efc9025c87 100644 --- a/test/unittest/app_mgr_service_dump_test/BUILD.gn +++ b/test/unittest/app_mgr_service_dump_test/BUILD.gn @@ -44,6 +44,7 @@ ohos_unittest("app_mgr_service_dump_test") { "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/unittest/app_mgr_service_event_handler_test/BUILD.gn b/test/unittest/app_mgr_service_event_handler_test/BUILD.gn index 158ce6c7fd..5d33e72121 100644 --- a/test/unittest/app_mgr_service_event_handler_test/BUILD.gn +++ b/test/unittest/app_mgr_service_event_handler_test/BUILD.gn @@ -35,8 +35,6 @@ ohos_unittest("AMSEventHandlerTest") { "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_status_module.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/child_process_record.cpp", "${ability_runtime_services_path}/appmgr/src/module_running_record.cpp", @@ -72,9 +70,10 @@ ohos_unittest("AMSEventHandlerTest") { "ability_base:want", "ability_runtime:ability_deps_wrapper", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hicollie:libhicollie", @@ -82,6 +81,7 @@ ohos_unittest("AMSEventHandlerTest") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/app_mgr_service_inner_tdd_test/BUILD.gn b/test/unittest/app_mgr_service_inner_tdd_test/BUILD.gn index 16899b4cb1..f91c7422c4 100644 --- a/test/unittest/app_mgr_service_inner_tdd_test/BUILD.gn +++ b/test/unittest/app_mgr_service_inner_tdd_test/BUILD.gn @@ -47,6 +47,7 @@ ohos_unittest("app_mgr_service_inner_tdd_test") { "ability_runtime:app_manager", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/unittest/app_mgr_service_inner_test/BUILD.gn b/test/unittest/app_mgr_service_inner_test/BUILD.gn index bfd57c968a..6bca3cb1b8 100644 --- a/test/unittest/app_mgr_service_inner_test/BUILD.gn +++ b/test/unittest/app_mgr_service_inner_test/BUILD.gn @@ -50,6 +50,7 @@ ohos_unittest("AppMgrServiceInnerTest") { "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/unittest/app_mgr_service_test/BUILD.gn b/test/unittest/app_mgr_service_test/BUILD.gn index e57358ff87..53af697993 100644 --- a/test/unittest/app_mgr_service_test/BUILD.gn +++ b/test/unittest/app_mgr_service_test/BUILD.gn @@ -48,6 +48,7 @@ ohos_unittest("app_mgr_service_test") { "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/unittest/app_running_manager_test/BUILD.gn b/test/unittest/app_running_manager_test/BUILD.gn index 06991f5841..e00f499a7d 100644 --- a/test/unittest/app_running_manager_test/BUILD.gn +++ b/test/unittest/app_running_manager_test/BUILD.gn @@ -44,9 +44,10 @@ ohos_unittest("app_running_manager_test") { "ability_base:configuration", "ability_base:want", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/test/unittest/app_running_processes_info_test/BUILD.gn b/test/unittest/app_running_processes_info_test/BUILD.gn index fa17f184d3..8f4d62592e 100644 --- a/test/unittest/app_running_processes_info_test/BUILD.gn +++ b/test/unittest/app_running_processes_info_test/BUILD.gn @@ -35,8 +35,6 @@ ohos_unittest("AppRunningProcessesInfoTest") { "${ability_runtime_services_path}/appmgr/src/app_running_record.cpp", "${ability_runtime_services_path}/appmgr/src/app_running_status_module.cpp", "${ability_runtime_services_path}/appmgr/src/app_spawn_client.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_msg_wrapper.cpp", - "${ability_runtime_services_path}/appmgr/src/app_spawn_socket.cpp", "${ability_runtime_services_path}/appmgr/src/app_state_observer_manager.cpp", "${ability_runtime_services_path}/appmgr/src/child_process_record.cpp", "${ability_runtime_services_path}/appmgr/src/render_state_observer_manager.cpp", @@ -70,14 +68,16 @@ ohos_unittest("AppRunningProcessesInfoTest") { "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", "memmgr:memmgrclient", diff --git a/test/unittest/app_running_record_test/BUILD.gn b/test/unittest/app_running_record_test/BUILD.gn index 149d615c81..2ec7992a4b 100644 --- a/test/unittest/app_running_record_test/BUILD.gn +++ b/test/unittest/app_running_record_test/BUILD.gn @@ -48,9 +48,10 @@ ohos_unittest("app_running_record_test") { "ability_base:configuration", "ability_base:want", "access_token:libaccesstoken_sdk", - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "c_utils:utils", "common_event_service:cesfwk_innerkits", "ffrt:libffrt", "hicollie:libhicollie", diff --git a/test/unittest/app_spawn_client_test/BUILD.gn b/test/unittest/app_spawn_client_test/BUILD.gn index 2f3009aea2..66d6934ef7 100644 --- a/test/unittest/app_spawn_client_test/BUILD.gn +++ b/test/unittest/app_spawn_client_test/BUILD.gn @@ -36,6 +36,7 @@ ohos_unittest("AppSpawnClientTest") { "ability_runtime:app_manager", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/unittest/app_spawn_client_test/app_spawn_client_test.cpp b/test/unittest/app_spawn_client_test/app_spawn_client_test.cpp index 55dbbe24d8..7ef501f016 100644 --- a/test/unittest/app_spawn_client_test/app_spawn_client_test.cpp +++ b/test/unittest/app_spawn_client_test/app_spawn_client_test.cpp @@ -57,19 +57,6 @@ HWTEST_F(AppSpawnClientTest, PreStartNWebSpawnProcess_001, TestSize.Level0) EXPECT_EQ(ret, ERR_OK); } -/** - * @tc.name: PreStartNWebSpawnProcessImpl_001 - * @tc.desc: prestart nwebspawn process. - * @tc.type: FUNC - * @tc.require: issueI5W4S7 - */ -HWTEST_F(AppSpawnClientTest, PreStartNWebSpawnProcessImpl_001, TestSize.Level0) -{ - auto asc = std::make_shared(true); - int ret = asc->PreStartNWebSpawnProcessImpl(); - EXPECT_EQ(ret, ERR_OK); -} - /** * @tc.name: PreStartNWebSpawnProcessImpl_002 * @tc.desc: prestart nwebspawn process. @@ -80,7 +67,7 @@ HWTEST_F(AppSpawnClientTest, PreStartNWebSpawnProcessImpl_002, TestSize.Level0) { auto asc = std::make_shared(true); asc->OpenConnection(); - int ret = asc->PreStartNWebSpawnProcessImpl(); + int ret = asc->PreStartNWebSpawnProcess(); EXPECT_EQ(ret, ERR_OK); } } // namespace AppExecFwk diff --git a/test/unittest/app_spawn_socket_test/BUILD.gn b/test/unittest/app_spawn_socket_test/BUILD.gn deleted file mode 100755 index a86ac3af3a..0000000000 --- a/test/unittest/app_spawn_socket_test/BUILD.gn +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2021-2022 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build/test.gni") -import("//foundation/ability/ability_runtime/ability_runtime.gni") - -module_output_path = "ability_runtime/appmgr" - -ohos_unittest("app_spawn_socket_test") { - module_out_path = module_output_path - cflags_cc = [] - include_dirs = [ - "${ability_runtime_services_path}/appmgr/include", - "${distributedschedule_path}/samgr/interfaces/innerkits/samgr_proxy/include", - ] - - sources = - [ "${ability_runtime_services_path}/appmgr/src/ams_mgr_scheduler.cpp" ] - - sources += [ "app_spawn_socket_test.cpp" ] - - configs = [ "${ability_runtime_test_path}/unittest:appmgr_test_config" ] - cflags = [] - if (target_cpu == "arm") { - cflags += [ "-DBINDER_IPC_32BIT" ] - } - deps = [ - "${ability_runtime_innerkits_path}/app_manager:app_manager", - "${ability_runtime_services_path}/appmgr:libappms", - "${ability_runtime_services_path}/common:perm_verification", - "${ability_runtime_services_path}/common:task_handler_wrap", - "${ability_runtime_test_path}/unittest:appmgr_test_source", - ] - - external_deps = [ - "access_token:libaccesstoken_sdk", - "bundle_framework:appexecfwk_core", - "ffrt:libffrt", - "hilog:libhilog", - "ipc:ipc_core", - ] - - defines = [ "AMS_LOG_TAG = \"AppMgrService\"" ] - - if (ability_command_for_test) { - defines += [ "ABILITY_COMMAND_FOR_TEST" ] - } - - if (ability_runtime_graphics) { - defines += [ "SUPPORT_GRAPHICS" ] - deps += [] - external_deps += [ - "i18n:intl_util", - "window_manager:libwm", - ] - } -} - -group("unittest") { - testonly = true - deps = [ ":app_spawn_socket_test" ] -} diff --git a/test/unittest/app_spawn_socket_test/app_spawn_socket_test.cpp b/test/unittest/app_spawn_socket_test/app_spawn_socket_test.cpp deleted file mode 100755 index 474e7f2303..0000000000 --- a/test/unittest/app_spawn_socket_test/app_spawn_socket_test.cpp +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -#define private public -#include "app_spawn_socket.h" -#undef private - -using namespace testing; -using namespace testing::ext; -using namespace OHOS::AppSpawn; - -namespace OHOS { -namespace AppExecFwk { -class AppSpawnSocketTest : public testing::Test { -public: - static void SetUpTestCase(); - static void TearDownTestCase(); - void SetUp(); - void TearDown(); -}; - -void AppSpawnSocketTest::SetUpTestCase() -{} - -void AppSpawnSocketTest::TearDownTestCase() -{} - -void AppSpawnSocketTest::SetUp() -{} - -void AppSpawnSocketTest::TearDown() -{} - -/* - * Feature: AppSpawnSocket - * Function: OpenAppSpawnConnection - * SubFunction: NA - * FunctionPoints: AppSpawnSocket OpenAppSpawnConnection - * EnvConditions: NA - * CaseDescription: Verify OpenAppSpawnConnection - */ -HWTEST_F(AppSpawnSocketTest, OpenAppSpawnConnection_001, TestSize.Level0) -{ - auto appSpawnSocket = std::make_shared(true); - ErrCode res1 = appSpawnSocket->OpenAppSpawnConnection(); - EXPECT_EQ(res1, ERR_OK); - appSpawnSocket->clientSocket_ = nullptr; - ErrCode res2 = appSpawnSocket->OpenAppSpawnConnection(); - EXPECT_EQ(res2, ERR_APPEXECFWK_BAD_APPSPAWN_SOCKET); - - appSpawnSocket->CloseAppSpawnConnection(); - appSpawnSocket->clientSocket_ = nullptr; - appSpawnSocket->CloseAppSpawnConnection(); -} - -/* - * Feature: AppSpawnSocket - * Function: WriteMessage - * SubFunction: NA - * FunctionPoints: AppSpawnSocket WriteMessage - * EnvConditions: NA - * CaseDescription: Verify WriteMessage - */ -HWTEST_F(AppSpawnSocketTest, WriteMessage_001, TestSize.Level0) -{ - auto appSpawnSocket = std::make_shared(true); - const void *buf = nullptr; - int32_t len = 0; - ErrCode res = appSpawnSocket->WriteMessage(buf, len); - EXPECT_EQ(res, ERR_INVALID_VALUE); -} - -/* - * Feature: AppSpawnSocket - * Function: WriteMessage - * SubFunction: NA - * FunctionPoints: AppSpawnSocket WriteMessage - * EnvConditions: NA - * CaseDescription: Verify WriteMessage - */ -HWTEST_F(AppSpawnSocketTest, WriteMessage_002, TestSize.Level0) -{ - auto appSpawnSocket = std::make_shared(true); - const void *buf = nullptr; - int32_t len = 1; - ErrCode res = appSpawnSocket->WriteMessage(buf, len); - EXPECT_EQ(res, ERR_INVALID_VALUE); -} - -/* - * Feature: AppSpawnSocket - * Function: WriteMessage - * SubFunction: NA - * FunctionPoints: AppSpawnSocket WriteMessage - * EnvConditions: NA - * CaseDescription: Verify WriteMessage - */ -HWTEST_F(AppSpawnSocketTest, WriteMessage_003, TestSize.Level0) -{ - auto appSpawnSocket = std::make_shared(true); - char data = 'a'; - const void *buf = &data; - int32_t len = 1; - ErrCode res1 = appSpawnSocket->WriteMessage(buf, len); - EXPECT_EQ(res1, ERR_APPEXECFWK_SOCKET_WRITE_FAILED); - appSpawnSocket->clientSocket_ = nullptr; - ErrCode res2 = appSpawnSocket->WriteMessage(buf, len); - EXPECT_EQ(res2, ERR_APPEXECFWK_BAD_APPSPAWN_SOCKET); -} - -/* - * Feature: AppSpawnSocket - * Function: ReadMessage - * SubFunction: NA - * FunctionPoints: AppSpawnSocket ReadMessage - * EnvConditions: NA - * CaseDescription: Verify ReadMessage - */ -HWTEST_F(AppSpawnSocketTest, ReadMessage_001, TestSize.Level0) -{ - auto appSpawnSocket = std::make_shared(true); - void *buf = nullptr; - int32_t len = 0; - ErrCode res = appSpawnSocket->ReadMessage(buf, len); - EXPECT_EQ(res, ERR_INVALID_VALUE); -} - -/* - * Feature: AppSpawnSocket - * Function: ReadMessage - * SubFunction: NA - * FunctionPoints: AppSpawnSocket ReadMessage - * EnvConditions: NA - * CaseDescription: Verify ReadMessage - */ -HWTEST_F(AppSpawnSocketTest, ReadMessage_002, TestSize.Level0) -{ - auto appSpawnSocket = std::make_shared(true); - void *buf = nullptr; - int32_t len = 1; - ErrCode res = appSpawnSocket->ReadMessage(buf, len); - EXPECT_EQ(res, ERR_INVALID_VALUE); -} - -/* - * Feature: AppSpawnSocket - * Function: ReadMessage - * SubFunction: NA - * FunctionPoints: AppSpawnSocket ReadMessage - * EnvConditions: NA - * CaseDescription: Verify ReadMessage - */ -HWTEST_F(AppSpawnSocketTest, ReadMessage_003, TestSize.Level0) -{ - auto appSpawnSocket = std::make_shared(true); - char data = 'a'; - void *buf = &data; - int32_t len = 1; - ErrCode res1 = appSpawnSocket->ReadMessage(buf, len); - EXPECT_EQ(res1, ERR_APPEXECFWK_SOCKET_READ_FAILED); - appSpawnSocket->clientSocket_ = nullptr; - ErrCode res2 = appSpawnSocket->ReadMessage(buf, len); - EXPECT_EQ(res2, ERR_APPEXECFWK_BAD_APPSPAWN_CLIENT); -} -} // namespace AppExecFwk -} // namespace OHOS diff --git a/test/unittest/app_state_observer_manager_test/BUILD.gn b/test/unittest/app_state_observer_manager_test/BUILD.gn index 42d99827e6..a104f50ee2 100755 --- a/test/unittest/app_state_observer_manager_test/BUILD.gn +++ b/test/unittest/app_state_observer_manager_test/BUILD.gn @@ -53,6 +53,7 @@ ohos_unittest("app_state_observer_manager_test") { external_deps = [ "ability_runtime:ability_manager", "access_token:libaccesstoken_sdk", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_core", "ffrt:libffrt", "hilog:libhilog", diff --git a/test/unittest/dataobs_mgr_service_dump_test/BUILD.gn b/test/unittest/dataobs_mgr_service_dump_test/BUILD.gn index dd3343618d..953f3a539a 100755 --- a/test/unittest/dataobs_mgr_service_dump_test/BUILD.gn +++ b/test/unittest/dataobs_mgr_service_dump_test/BUILD.gn @@ -41,6 +41,7 @@ ohos_unittest("dataobs_mgr_service_dump_test") { "ability_runtime:app_manager", "access_token:libnativetoken", "access_token:libtoken_setproc", + "appspawn:appspawn_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", diff --git a/test/unittest/render_state_observer_manager_test/BUILD.gn b/test/unittest/render_state_observer_manager_test/BUILD.gn index c489656938..e75aee7b05 100644 --- a/test/unittest/render_state_observer_manager_test/BUILD.gn +++ b/test/unittest/render_state_observer_manager_test/BUILD.gn @@ -39,10 +39,11 @@ ohos_unittest("render_state_observer_manager_test") { ] external_deps = [ - "appspawn:appspawn_socket_client", + "appspawn:appspawn_client", "c_utils:utils", "ffrt:libffrt", "hilog:libhilog", + "init:libbegetutil", "ipc:ipc_core", "window_manager:libwm", "window_manager:libwsutils",