未验证 提交 52f4ad01 编写于 作者: O openharmony_ci 提交者: Gitee

!387 add test case of rpc new innerkit

Merge pull request !387 from wanghaoxu/OpenHarmony-3.2-Beta3
......@@ -96,7 +96,8 @@
],
"test": [
"//foundation/communication/ipc/ipc/test:moduletest",
"//foundation/communication/ipc/ipc/native/test:unittest"
"//foundation/communication/ipc/ipc/native/test:unittest",
"//foundation/communication/ipc/services/dbinder/test/unittest:unittest"
]
}
}
......
......@@ -126,7 +126,7 @@ public:
std::string QueryBusNameObject(IPCObjectProxy *proxy);
void LoadSystemAbilityComplete(const std::string& srcNetworkId, int32_t systemAbilityId,
const sptr<IRemoteObject>& remoteObject);
void ProcessOnSessionClosed(std::shared_ptr<Session> session);
bool ProcessOnSessionClosed(std::shared_ptr<Session> session);
private:
static std::shared_ptr<DBinderRemoteListener> GetRemoteListener();
......
......@@ -670,8 +670,12 @@ bool DBinderService::OnRemoteMessageTask(const struct DHandleEntryTxRx *message)
return result;
}
void DBinderService::ProcessOnSessionClosed(std::shared_ptr<Session> session)
bool DBinderService::ProcessOnSessionClosed(std::shared_ptr<Session> session)
{
if (session == nullptr) {
DBINDER_LOGE(LOG_LABEL, "ERROR!Session is nullptr!");
return false;
}
std::lock_guard<std::mutex> lock(threadLockMutex_);
for (auto it = threadLockInfo_.begin(); it != threadLockInfo_.end();) {
if (it->second->networkId != session->GetPeerDeviceId()) {
......@@ -682,6 +686,7 @@ void DBinderService::ProcessOnSessionClosed(std::shared_ptr<Session> session)
it->second->condition.notify_all();
it = threadLockInfo_.erase(it);
}
return true;
}
void DBinderService::OnRemoteErrorMessage(const struct DHandleEntryTxRx *replyMessage)
......
# Copyright (C) 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")
MODULE_OUTPUT_PATH = "ipc"
ohos_unittest("RPCDbinderTest") {
module_out_path = MODULE_OUTPUT_PATH
include_dirs = [
"//foundation/communication/ipc/ipc/native/c/manager/include",
"//foundation/communication/ipc/utils/include",
]
sources = [ "dbinder_service_unittest.cpp" ]
configs = []
deps = [ "//third_party/googletest:gtest_main" ]
external_deps = [
"c_utils:utils",
"hiviewdfx_hilog_native:libhilog",
"ipc:libdbinder",
]
resource_config_file =
"//foundation/communication/ipc/test/resource/ipc/ohos_test.xml"
}
###############################################################################
group("unittest") {
testonly = true
deps = [ ":RPCDbinderTest" ]
}
###############################################################################
/*
* Copyright (c) 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 "dbinder_service.h"
#include "gtest/gtest.h"
#include "rpc_log.h"
#include "log_tags.h"
using namespace testing::ext;
using namespace OHOS;
using namespace OHOS::HiviewDFX;
using Communication::SoftBus::Session;
class DBinderServiceUnitTest : public testing::Test {
public:
static void SetUpTestCase(void);
static void TearDownTestCase(void);
void SetUp();
void TearDown();
static constexpr HiLogLabel LABEL = { LOG_CORE, LOG_ID_RPC, "DBinderServiceUnitTest" };
};
void DBinderServiceUnitTest::SetUp() {}
void DBinderServiceUnitTest::TearDown() {}
void DBinderServiceUnitTest::SetUpTestCase() {}
void DBinderServiceUnitTest::TearDownTestCase() {}
HWTEST_F(DBinderServiceUnitTest, process_closesession_001, TestSize.Level1)
{
sptr<DBinderService> dBinderService_;
std::shared_ptr<Session> session = nullptr;
EXPECT_EQ(dBinderService_->ProcessOnSessionClosed(session), false);
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册