From 709a30ec3203be2e95a9e22ea22f7c58fb83db1d Mon Sep 17 00:00:00 2001 From: huaqingsimeng <1004904143@qq.com> Date: Tue, 4 Jul 2023 15:09:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=AF=B9=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8F=90=E4=BE=9B=E6=89=A9=E5=B1=95IPC?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huaqingsimeng --- .../native/backup_kit_inner/src/service_proxy.cpp | 11 ++++++++++- .../native/backup_kit_inner/impl/i_service.h | 13 ++++++++++++- .../native/backup_kit_inner/impl/service_proxy.h | 5 ++++- services/backup_sa/include/module_ipc/service.h | 5 ++++- services/backup_sa/src/module_ipc/service.cpp | 5 ++++- services/backup_sa/src/module_ipc/service_stub.cpp | 11 ++++++++++- tests/mock/backup_kit_inner/service_proxy_mock.cpp | 5 ++++- tests/mock/module_ipc/service_mock.cpp | 5 ++++- .../backup_api/backup_impl/include/i_service_mock.h | 5 ++++- .../backup_sa/module_ipc/service_stub_test.cpp | 8 ++++++-- 10 files changed, 62 insertions(+), 11 deletions(-) diff --git a/frameworks/native/backup_kit_inner/src/service_proxy.cpp b/frameworks/native/backup_kit_inner/src/service_proxy.cpp index 707a5468a..664035f12 100644 --- a/frameworks/native/backup_kit_inner/src/service_proxy.cpp +++ b/frameworks/native/backup_kit_inner/src/service_proxy.cpp @@ -217,7 +217,10 @@ ErrCode ServiceProxy::GetFileHandle(const string &bundleName, const string &file return ret; } -ErrCode ServiceProxy::AppendBundlesRestoreSession(UniqueFd fd, const vector &bundleNames) +ErrCode ServiceProxy::AppendBundlesRestoreSession(UniqueFd fd, + const vector &bundleNames, + RestoreTpyeEnum restoreType, + int32_t userId) { HILOGI("Begin"); BExcepUltils::BAssert(Remote(), BError::Codes::SDK_INVAL_ARG, "Remote is nullptr"); @@ -234,6 +237,12 @@ ErrCode ServiceProxy::AppendBundlesRestoreSession(UniqueFd fd, const vector(restoreType))) { + return BError(BError::Codes::SDK_INVAL_ARG, "Failed to send restoreType").GetCode(); + } + if (!data.WriteInt32(userId)) { + return BError(BError::Codes::SDK_INVAL_ARG, "Failed to send userId").GetCode(); + } int32_t ret = Remote()->SendRequest(IService::SERVICE_CMD_APPEND_BUNDLES_RESTORE_SESSION, data, reply, option); if (ret != NO_ERROR) { diff --git a/interfaces/inner_api/native/backup_kit_inner/impl/i_service.h b/interfaces/inner_api/native/backup_kit_inner/impl/i_service.h index 3e8af262c..79f6869f7 100644 --- a/interfaces/inner_api/native/backup_kit_inner/impl/i_service.h +++ b/interfaces/inner_api/native/backup_kit_inner/impl/i_service.h @@ -26,6 +26,13 @@ #include "iremote_broker.h" namespace OHOS::FileManagement::Backup { +const int DEFAULT_INVAL_VALUE = -1; + +typedef enum TypeRestoreTpyeEnum { + RESTORE_DATA_WAIT_SEND = 0, + RESTORE_DATA_READDY = 1, +} RestoreTpyeEnum; + class IService : public IRemoteBroker { public: enum { @@ -50,7 +57,11 @@ public: virtual ErrCode AppFileReady(const std::string &fileName, UniqueFd fd) = 0; virtual ErrCode AppDone(ErrCode errCode) = 0; virtual ErrCode GetFileHandle(const std::string &bundleName, const std::string &fileName) = 0; - virtual ErrCode AppendBundlesRestoreSession(UniqueFd fd, const std::vector &bundleNames) = 0; + virtual ErrCode AppendBundlesRestoreSession( + UniqueFd fd, + const std::vector &bundleNames, + RestoreTpyeEnum restoreType = RestoreTpyeEnum::RESTORE_DATA_WAIT_SEND, + int32_t userId = DEFAULT_INVAL_VALUE) = 0; virtual ErrCode AppendBundlesBackupSession(const std::vector &bundleNames) = 0; virtual ErrCode Finish() = 0; diff --git a/interfaces/inner_api/native/backup_kit_inner/impl/service_proxy.h b/interfaces/inner_api/native/backup_kit_inner/impl/service_proxy.h index 8033b7f10..c639902f9 100644 --- a/interfaces/inner_api/native/backup_kit_inner/impl/service_proxy.h +++ b/interfaces/inner_api/native/backup_kit_inner/impl/service_proxy.h @@ -36,7 +36,10 @@ public: ErrCode AppFileReady(const std::string &fileName, UniqueFd fd) override; ErrCode AppDone(ErrCode errCode) override; ErrCode GetFileHandle(const std::string &bundleName, const std::string &fileName) override; - ErrCode AppendBundlesRestoreSession(UniqueFd fd, const std::vector &bundleNames) override; + ErrCode AppendBundlesRestoreSession(UniqueFd fd, + const std::vector &bundleNames, + RestoreTpyeEnum restoreType = RestoreTpyeEnum::RESTORE_DATA_WAIT_SEND, + int32_t userId = DEFAULT_INVAL_VALUE) override; ErrCode AppendBundlesBackupSession(const std::vector &bundleNames) override; ErrCode Finish() override; diff --git a/services/backup_sa/include/module_ipc/service.h b/services/backup_sa/include/module_ipc/service.h index 7bb1dd330..5665a71a0 100644 --- a/services/backup_sa/include/module_ipc/service.h +++ b/services/backup_sa/include/module_ipc/service.h @@ -40,7 +40,10 @@ public: ErrCode AppFileReady(const std::string &fileName, UniqueFd fd) override; ErrCode AppDone(ErrCode errCode) override; ErrCode GetFileHandle(const std::string &bundleName, const std::string &fileName) override; - ErrCode AppendBundlesRestoreSession(UniqueFd fd, const std::vector &bundleNames) override; + ErrCode AppendBundlesRestoreSession(UniqueFd fd, + const std::vector &bundleNames, + RestoreTpyeEnum restoreType = RestoreTpyeEnum::RESTORE_DATA_WAIT_SEND, + int32_t userId = DEFAULT_INVAL_VALUE) override; ErrCode AppendBundlesBackupSession(const std::vector &bundleNames) override; ErrCode Finish() override; diff --git a/services/backup_sa/src/module_ipc/service.cpp b/services/backup_sa/src/module_ipc/service.cpp index a2855001c..9d1097f7f 100644 --- a/services/backup_sa/src/module_ipc/service.cpp +++ b/services/backup_sa/src/module_ipc/service.cpp @@ -202,7 +202,10 @@ ErrCode Service::Start() return BError(BError::Codes::OK); } -ErrCode Service::AppendBundlesRestoreSession(UniqueFd fd, const vector &bundleNames) +ErrCode Service::AppendBundlesRestoreSession(UniqueFd fd, + const vector &bundleNames, + RestoreTpyeEnum restoreType, + int32_t userId) { HILOGI("Begin"); VerifyCaller(session_->GetScenario()); diff --git a/services/backup_sa/src/module_ipc/service_stub.cpp b/services/backup_sa/src/module_ipc/service_stub.cpp index 5d1ccce4e..8010c6668 100644 --- a/services/backup_sa/src/module_ipc/service_stub.cpp +++ b/services/backup_sa/src/module_ipc/service_stub.cpp @@ -208,8 +208,17 @@ int32_t ServiceStub::CmdAppendBundlesRestoreSession(MessageParcel &data, Message if (!data.ReadStringVector(&bundleNames)) { return BError(BError::Codes::SA_INVAL_ARG, "Failed to receive bundleNames"); } + int32_t type; + if (!data.ReadInt32(type)) { + return BError(BError::Codes::SA_INVAL_ARG, "Failed to receive restoreType"); + } + RestoreTpyeEnum restoreType = static_cast(type); + int32_t userId; + if (!data.ReadInt32(userId)) { + return BError(BError::Codes::SA_INVAL_ARG, "Failed to receive userId"); + } - int res = AppendBundlesRestoreSession(move(fd), bundleNames); + int res = AppendBundlesRestoreSession(move(fd), bundleNames, restoreType, userId); if (!reply.WriteInt32(res)) { return BError(BError::Codes::SA_BROKEN_IPC, string("Failed to send the result ") + to_string(res)); } diff --git a/tests/mock/backup_kit_inner/service_proxy_mock.cpp b/tests/mock/backup_kit_inner/service_proxy_mock.cpp index 6844d16bc..eff2a51de 100644 --- a/tests/mock/backup_kit_inner/service_proxy_mock.cpp +++ b/tests/mock/backup_kit_inner/service_proxy_mock.cpp @@ -80,7 +80,10 @@ ErrCode ServiceProxy::GetFileHandle(const string &bundleName, const string &file return BError(BError::Codes::OK); } -ErrCode ServiceProxy::AppendBundlesRestoreSession(UniqueFd fd, const vector &bundleNames) +ErrCode ServiceProxy::AppendBundlesRestoreSession(UniqueFd fd, + const vector &bundleNames, + RestoreTpyeEnum restoreType, + int32_t userId) { return BError(BError::Codes::OK); } diff --git a/tests/mock/module_ipc/service_mock.cpp b/tests/mock/module_ipc/service_mock.cpp index 1af44b43d..9ded32d95 100644 --- a/tests/mock/module_ipc/service_mock.cpp +++ b/tests/mock/module_ipc/service_mock.cpp @@ -72,7 +72,10 @@ ErrCode Service::AppDone(ErrCode errCode) return BError(BError::Codes::OK); } -ErrCode Service::AppendBundlesRestoreSession(UniqueFd fd, const std::vector &bundleNames) +ErrCode Service::AppendBundlesRestoreSession(UniqueFd fd, + const std::vector &bundleNames, + RestoreTpyeEnum restoreType, + int32_t userId) { return BError(BError::Codes::OK); } diff --git a/tests/unittests/backup_api/backup_impl/include/i_service_mock.h b/tests/unittests/backup_api/backup_impl/include/i_service_mock.h index c1e0faa1f..ad74dccd4 100644 --- a/tests/unittests/backup_api/backup_impl/include/i_service_mock.h +++ b/tests/unittests/backup_api/backup_impl/include/i_service_mock.h @@ -93,7 +93,10 @@ public: return BError(BError::Codes::OK); } - ErrCode AppendBundlesRestoreSession(UniqueFd fd, const std::vector &bundleNames) override + ErrCode AppendBundlesRestoreSession(UniqueFd fd, + const std::vector &bundleNames, + RestoreTpyeEnum restoreType, + int32_t userId) override { return BError(BError::Codes::OK); } diff --git a/tests/unittests/backup_sa/module_ipc/service_stub_test.cpp b/tests/unittests/backup_sa/module_ipc/service_stub_test.cpp index 462f67543..f62025fd1 100644 --- a/tests/unittests/backup_sa/module_ipc/service_stub_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/service_stub_test.cpp @@ -48,7 +48,9 @@ public: MOCK_METHOD2(AppFileReady, ErrCode(const string &fileName, UniqueFd fd)); MOCK_METHOD1(AppDone, ErrCode(ErrCode errCode)); MOCK_METHOD2(GetFileHandle, ErrCode(const string &bundleName, const string &fileName)); - MOCK_METHOD2(AppendBundlesRestoreSession, ErrCode(UniqueFd fd, const std::vector &bundleNames)); + MOCK_METHOD4( + AppendBundlesRestoreSession, + ErrCode(UniqueFd fd, const std::vector &bundleNames, RestoreTpyeEnum restoreType, int32_t userId)); MOCK_METHOD1(AppendBundlesBackupSession, ErrCode(const std::vector &bundleNames)); MOCK_METHOD0(Finish, ErrCode()); UniqueFd InvokeGetLocalCapabilities() @@ -359,7 +361,7 @@ HWTEST_F(ServiceStubTest, SUB_backup_sa_ServiceStub_AppendBundlesRestoreSession_ GTEST_LOG_(INFO) << "ServiceStubTest-begin SUB_backup_sa_ServiceStub_AppendBundlesRestoreSession_0100"; try { MockService service; - EXPECT_CALL(service, AppendBundlesRestoreSession(_, _)).WillOnce(Return(BError(BError::Codes::OK))); + EXPECT_CALL(service, AppendBundlesRestoreSession(_, _, _, _)).WillOnce(Return(BError(BError::Codes::OK))); MessageParcel data; MessageParcel reply; MessageOption option; @@ -373,6 +375,8 @@ HWTEST_F(ServiceStubTest, SUB_backup_sa_ServiceStub_AppendBundlesRestoreSession_ EXPECT_TRUE(data.WriteInterfaceToken(IService::GetDescriptor())); EXPECT_TRUE(data.WriteFileDescriptor(fd)); EXPECT_TRUE(data.WriteStringVector(bundleNames)); + EXPECT_TRUE(data.WriteInt32(0)); + EXPECT_TRUE(data.WriteInt32(-1)); EXPECT_EQ(BError(BError::Codes::OK), service.OnRemoteRequest(IService::SERVICE_CMD_APPEND_BUNDLES_RESTORE_SESSION, data, reply, option)); } catch (...) { -- Gitee