diff --git a/frameworks/native/backup_kit_inner/src/service_proxy.cpp b/frameworks/native/backup_kit_inner/src/service_proxy.cpp index 707a5468a6e857190c45a1eedd4d750571162e36..7dcfe5b0031435be7c63665eb557eb177b234894 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 3e8af262cac53e2d5528a6c6802089fea2c553ff..9a2c234c61721f84c7324b8560555e197746c785 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 8033b7f10e2c0304f6400db97e24818d8babb043..155ec3d17009a6f7306c714aa6520485636cfc6b 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 7bb1dd3302171acc376ccc4c1e93386635e4a223..632b1f0804b3f316ad3170452ca7786d3c16db88 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 a2855001c25c8af6a9b8d8b6cea194507fa6d009..73a7e15577f885f276763abef7ddcee6114b3aec 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 5d1ccce4e17c50529bb017845231114c57f8e4ed..dce4b342de2de5a192fd0c68cc9e3f734bc7ceec 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 6844d16bc5b7d9168a973de6d51c9b16f149957e..34d8d3d3ee9c956f68350d19cbc3814665aacdb9 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 1af44b43d7311141576dabfbfe8af71111fd5cf8..589e4020e18be56c40e22683b382a65c6b6b9b81 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 c1e0faa1f110c9980f41488d57b783219a53ddce..664d4e747c6ad5f44e37129ec8bd8808808b971c 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 462f675438445d3b6ce009f7317dda0bb06ab589..4d032832019531d3b916edcde975052040068ab2 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 b3c4f11f6269cf7a1ad475067106b1f21bc3da99..fb00ff8bdb4c2b778e83652d4a49ad174e7eaf9b 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));