From 4e5612bb4067985a217e312ef36bf4c81256839f Mon Sep 17 00:00:00 2001 From: huaqingsimeng <1004904143@qq.com> Date: Mon, 26 Jun 2023 14:32:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E6=81=A2=E5=A4=8DIPC?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=9A=E7=94=A8=E6=88=B7=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huaqingsimeng Change-Id: Ide16e97a938a81396f111dca03a422f6b9f9e24f --- frameworks/native/backup_kit_inner/src/service_proxy.cpp | 5 ++++- .../inner_api/native/backup_kit_inner/impl/i_service.h | 5 ++++- .../inner_api/native/backup_kit_inner/impl/service_proxy.h | 4 +++- services/backup_sa/include/module_ipc/service.h | 4 +++- services/backup_sa/src/module_ipc/service.cpp | 2 +- services/backup_sa/src/module_ipc/service_stub.cpp | 6 +++++- tests/mock/backup_kit_inner/service_proxy_mock.cpp | 2 +- tests/mock/module_ipc/service_mock.cpp | 2 +- .../backup_api/backup_impl/include/i_service_mock.h | 4 +++- tests/unittests/backup_sa/module_ipc/service_stub_test.cpp | 6 ++++-- tests/unittests/backup_sa/module_ipc/service_test.cpp | 2 +- 11 files changed, 30 insertions(+), 12 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..7dcfe5b00 100644 --- a/frameworks/native/backup_kit_inner/src/service_proxy.cpp +++ b/frameworks/native/backup_kit_inner/src/service_proxy.cpp @@ -217,7 +217,7 @@ 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, int32_t userId) { HILOGI("Begin"); BExcepUltils::BAssert(Remote(), BError::Codes::SDK_INVAL_ARG, "Remote is nullptr"); @@ -234,6 +234,9 @@ ErrCode ServiceProxy::AppendBundlesRestoreSession(UniqueFd fd, const vectorSendRequest(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..9a2c234c6 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,7 @@ #include "iremote_broker.h" namespace OHOS::FileManagement::Backup { +const int DEFAULT_INVAL_VALUE = -1; class IService : public IRemoteBroker { public: enum { @@ -50,7 +51,9 @@ 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, + 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..155ec3d17 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,9 @@ 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, + 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..632b1f080 100644 --- a/services/backup_sa/include/module_ipc/service.h +++ b/services/backup_sa/include/module_ipc/service.h @@ -40,7 +40,9 @@ 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, + 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..73a7e1557 100644 --- a/services/backup_sa/src/module_ipc/service.cpp +++ b/services/backup_sa/src/module_ipc/service.cpp @@ -202,7 +202,7 @@ ErrCode Service::Start() return BError(BError::Codes::OK); } -ErrCode Service::AppendBundlesRestoreSession(UniqueFd fd, const vector &bundleNames) +ErrCode Service::AppendBundlesRestoreSession(UniqueFd fd, const vector &bundleNames, 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..dce4b342d 100644 --- a/services/backup_sa/src/module_ipc/service_stub.cpp +++ b/services/backup_sa/src/module_ipc/service_stub.cpp @@ -208,8 +208,12 @@ int32_t ServiceStub::CmdAppendBundlesRestoreSession(MessageParcel &data, Message if (!data.ReadStringVector(&bundleNames)) { return BError(BError::Codes::SA_INVAL_ARG, "Failed to receive bundleNames"); } + 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, 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..34d8d3d3e 100644 --- a/tests/mock/backup_kit_inner/service_proxy_mock.cpp +++ b/tests/mock/backup_kit_inner/service_proxy_mock.cpp @@ -80,7 +80,7 @@ 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, 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..589e4020e 100644 --- a/tests/mock/module_ipc/service_mock.cpp +++ b/tests/mock/module_ipc/service_mock.cpp @@ -72,7 +72,7 @@ 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, 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..664d4e747 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,9 @@ public: return BError(BError::Codes::OK); } - ErrCode AppendBundlesRestoreSession(UniqueFd fd, const std::vector &bundleNames) override + ErrCode AppendBundlesRestoreSession(UniqueFd fd, + const std::vector &bundleNames, + 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..4d0328320 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,8 @@ 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_METHOD3(AppendBundlesRestoreSession, + ErrCode(UniqueFd fd, const std::vector &bundleNames, int32_t userId)); MOCK_METHOD1(AppendBundlesBackupSession, ErrCode(const std::vector &bundleNames)); MOCK_METHOD0(Finish, ErrCode()); UniqueFd InvokeGetLocalCapabilities() @@ -359,7 +360,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 +374,7 @@ 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(-1)); EXPECT_EQ(BError(BError::Codes::OK), service.OnRemoteRequest(IService::SERVICE_CMD_APPEND_BUNDLES_RESTORE_SESSION, data, reply, option)); } catch (...) { diff --git a/tests/unittests/backup_sa/module_ipc/service_test.cpp b/tests/unittests/backup_sa/module_ipc/service_test.cpp index b3c4f11f6..fb00ff8bd 100644 --- a/tests/unittests/backup_sa/module_ipc/service_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/service_test.cpp @@ -71,7 +71,7 @@ ErrCode ServiceTest::Init(IServiceReverse::Scenario scenario) EXPECT_GT(fd, BError(BError::Codes::OK)); ret = servicePtr_->InitRestoreSession(remote_); EXPECT_EQ(ret, BError(BError::Codes::OK)); - ret = servicePtr_->AppendBundlesRestoreSession(move(fd), bundleNames); + ret = servicePtr_->AppendBundlesRestoreSession(move(fd), bundleNames, -1); EXPECT_EQ(ret, BError(BError::Codes::OK)); ret = servicePtr_->Finish(); EXPECT_EQ(ret, BError(BError::Codes::OK)); -- Gitee