From e048592818cd5666d82d818f7a2b6ba290c1979a Mon Sep 17 00:00:00 2001 From: wangchaole Date: Tue, 14 Mar 2023 17:39:21 +0800 Subject: [PATCH] fix: add ut test Signed-off-by: wangchaole --- .../dcamera_source_handler_test.cpp | 3 +- .../base/test/unittest/common/base/BUILD.gn | 4 +- .../common/base/dcamera_frame_info_test.cpp | 148 ++++++++++++++++++ .../test/unittest/common/channel/BUILD.gn | 2 + .../channel/dcamera_softbus_latency_test.cpp | 97 ++++++++++++ .../common/channel/session_bus_center.cpp | 18 +++ .../common/channel/session_bus_center.h | 38 +++++ 7 files changed, 308 insertions(+), 2 deletions(-) create mode 100644 services/cameraservice/base/test/unittest/common/base/dcamera_frame_info_test.cpp create mode 100644 services/channel/test/unittest/common/channel/dcamera_softbus_latency_test.cpp diff --git a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/dcamera_source_handler_test.cpp b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/dcamera_source_handler_test.cpp index 1eed021b..90a1c4ce 100644 --- a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/dcamera_source_handler_test.cpp +++ b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/dcamera_source_handler_test.cpp @@ -129,10 +129,11 @@ HWTEST_F(DCameraSourceHandlerTest, dcamera_source_handler_test_004, TestSize.Lev { std::string devId = TEST_DEVICE_ID; std::string dhId = TEST_CAMERA_DH_ID_0; + std::string params = "test004"; std::shared_ptr uncallback = std::make_shared(); int32_t ret = DCameraSourceHandler::GetInstance().UnregisterDistributedHardware(devId, dhId, uncallback); - ret = DCameraSourceHandler::GetInstance().ReleaseSource(); + ret = DCameraSourceHandler::GetInstance().InitSource(params); EXPECT_EQ(DCAMERA_OK, ret); } diff --git a/services/cameraservice/base/test/unittest/common/base/BUILD.gn b/services/cameraservice/base/test/unittest/common/base/BUILD.gn index 2e0ed150..0620ce2e 100755 --- a/services/cameraservice/base/test/unittest/common/base/BUILD.gn +++ b/services/cameraservice/base/test/unittest/common/base/BUILD.gn @@ -43,13 +43,14 @@ ohos_unittest("DCameraServicesBaseTest") { module_out_path = module_out_path sources = [ - "dcamera_protocol_test.cpp", "dcamera_capture_info_cmd_test.cpp", "dcamera_channel_info_cmd_test.cpp", "dcamera_event_cmd_test.cpp", + "dcamera_frame_info_test.cpp", "dcamera_info_cmd_test.cpp", "dcamera_metadata_setting_cmd_test.cpp", "dcamera_open_info_cmd_test.cpp", + "dcamera_protocol_test.cpp", ] configs = [ ":module_private_config" ] @@ -58,6 +59,7 @@ ohos_unittest("DCameraServicesBaseTest") { "${common_path}:distributed_camera_utils", "${fwk_utils_path}:distributedhardwareutils", "${services_path}/cameraservice/sourceservice:distributed_camera_source", + "${services_path}/channel:distributed_camera_channel", "//third_party/googletest:gtest_main", "//third_party/jsoncpp:jsoncpp", ] diff --git a/services/cameraservice/base/test/unittest/common/base/dcamera_frame_info_test.cpp b/services/cameraservice/base/test/unittest/common/base/dcamera_frame_info_test.cpp new file mode 100644 index 00000000..651be83e --- /dev/null +++ b/services/cameraservice/base/test/unittest/common/base/dcamera_frame_info_test.cpp @@ -0,0 +1,148 @@ +/* + * 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 +#include + +#include "dcamera_frame_info.h" +#include "distributed_camera_errno.h" + +using namespace testing::ext; + +namespace OHOS { +namespace DistributedHardware { +class DCameraFrameInfoTest : public testing::Test { +public: + static void SetUpTestCase(void); + static void TearDownTestCase(void); + void SetUp(); + void TearDown(); +}; + +static const std::string TEST_FRAME_INFO_JSON_TYPE = R"({ + "type": "test", + "index": 1, + "pts": 1, + "encodeT": 1, + "sendT": 1, + "ver": "v1" +})"; + +static const std::string TEST_FRAME_INFO_JSON_INDEX = R"({ + "type": 0, + "index": "test", + "pts": 1, + "encodeT": 1, + "sendT": 1, + "ver": "v1" +})"; + +static const std::string TEST_FRAME_INFO_JSON_PTS = R"({ + "type": 0, + "index": 1, + "pts": "test", + "encodeT": 1, + "sendT": 1, + "ver": "v1" +})"; + +static const std::string TEST_FRAME_INFO_JSON_ENCODET = R"({ + "type": 0, + "index": 1, + "pts": 1, + "encodeT": "test", + "sendT": 1, + "ver": "v1" +})"; + +static const std::string TEST_FRAME_INFO_JSON_SENDT = R"({ + "type": 0, + "index": 1, + "pts": 1, + "encodeT": 1, + "sendT": "test", + "ver": "v1" +})"; + +static const std::string TEST_FRAME_INFO_JSON_VER = R"({ + "type": 0, + "index": 1, + "pts": 1, + "encodeT": 1, + "sendT": "test", + "ver": 1, +})"; + +static const std::string TEST_FRAME_INFO_JSON = R"({ + "type": 0, + "index": 1, + "pts": 1, + "encodeT": 1, + "sendT": 1, + "ver": "test", +})"; + +void DCameraFrameInfoTest::SetUpTestCase(void) +{ +} + +void DCameraFrameInfoTest::TearDownTestCase(void) +{ +} + +void DCameraFrameInfoTest::SetUp() +{ +} + +void DCameraFrameInfoTest::TearDown() +{ +} + +/** + * @tc.name: dcamera_frame_info_test_001. + * @tc.desc: Verify InfoframeTest Json. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DCameraFrameInfoTest, dcamera_frame_info_test_001, TestSize.Level1) +{ + DCameraFrameInfo frame; + std::string str = "0"; + int32_t ret = frame.Unmarshal(str); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + ret = frame.Unmarshal(TEST_FRAME_INFO_JSON_TYPE); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + ret = frame.Unmarshal(TEST_FRAME_INFO_JSON_INDEX); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + ret = frame.Unmarshal(TEST_FRAME_INFO_JSON_PTS); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + ret = frame.Unmarshal(TEST_FRAME_INFO_JSON_ENCODET); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + ret = frame.Unmarshal(TEST_FRAME_INFO_JSON_SENDT); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + ret = frame.Unmarshal(TEST_FRAME_INFO_JSON_VER); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + ret = frame.Unmarshal(TEST_FRAME_INFO_JSON); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); +} +} // namespace DistributedHardware +} // namespace OHOS \ No newline at end of file diff --git a/services/channel/test/unittest/common/channel/BUILD.gn b/services/channel/test/unittest/common/channel/BUILD.gn index 6ade5e65..192d8bd4 100644 --- a/services/channel/test/unittest/common/channel/BUILD.gn +++ b/services/channel/test/unittest/common/channel/BUILD.gn @@ -62,10 +62,12 @@ ohos_unittest("DCameraChannelTest") { "${services_path}/channel/src/dcamera_channel_sink_impl.cpp", "${services_path}/channel/src/dcamera_channel_source_impl.cpp", "${services_path}/channel/src/dcamera_softbus_adapter.cpp", + "${services_path}/channel/src/dcamera_softbus_latency.cpp", "${services_path}/channel/src/dcamera_softbus_session.cpp", "dcamera_channel_sink_impl_test.cpp", "dcamera_channel_source_impl_test.cpp", "dcamera_softbus_adapter_test.cpp", + "dcamera_softbus_latency_test.cpp", "dcamera_softbus_session_test.cpp", "session_bus_center.cpp", "session_mock.cpp", diff --git a/services/channel/test/unittest/common/channel/dcamera_softbus_latency_test.cpp b/services/channel/test/unittest/common/channel/dcamera_softbus_latency_test.cpp new file mode 100644 index 00000000..952cabb5 --- /dev/null +++ b/services/channel/test/unittest/common/channel/dcamera_softbus_latency_test.cpp @@ -0,0 +1,97 @@ +/* + * Copyright (c) 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. + */ + +#include + +#include "dcamera_softbus_latency.h" + +#include "distributed_camera_constants.h" +#include "distributed_camera_errno.h" +#include "session_bus_center.h" + +using namespace testing::ext; + +namespace OHOS { +namespace DistributedHardware { +class DCameraSoftbusLatencyTest : public testing::Test { +public: + static void SetUpTestCase(void); + static void TearDownTestCase(void); + void SetUp(); + void TearDown(); +}; + +namespace { +const std::string TEST_DEVICE_ID = "bb536a637105409e904d4da83790a4a7"; +} + +void DCameraSoftbusLatencyTest::SetUpTestCase(void) +{ +} + +void DCameraSoftbusLatencyTest::TearDownTestCase(void) +{ +} + +void DCameraSoftbusLatencyTest::SetUp(void) +{ +} + +void DCameraSoftbusLatencyTest::TearDown(void) +{ +} + +/** + * @tc.name: dcamera_softbus_latency_test_001 + * @tc.desc: Verify the StartSoftbusTimeSync function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DCameraSoftbusLatencyTest, dcamera_softbus_latency_test_001, TestSize.Level1) +{ + int32_t ret = DCameraSoftbusLatency::GetInstance().StartSoftbusTimeSync(TEST_DEVICE_ID); + EXPECT_EQ(DCAMERA_OK, ret); +} + +/** + * @tc.name: dcamera_softbus_latency_test_002 + * @tc.desc: Verify the StopSoftbusTimeSync function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DCameraSoftbusLatencyTest, dcamera_softbus_latency_test_002, TestSize.Level1) +{ + int32_t ret = DCameraSoftbusLatency::GetInstance().StartSoftbusTimeSync(TEST_DEVICE_ID); + EXPECT_EQ(DCAMERA_OK, ret); + + ret = DCameraSoftbusLatency::GetInstance().StopSoftbusTimeSync(TEST_DEVICE_ID); + EXPECT_EQ(DCAMERA_OK, ret); +} + +/** + * @tc.name: dcamera_softbus_latency_test_003 + * @tc.desc: Verify the SetTimeSyncInfo function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DCameraSoftbusLatencyTest, dcamera_softbus_latency_test_003, TestSize.Level1) +{ + int32_t microsecond = 0; + DCameraSoftbusLatency::GetInstance().SetTimeSyncInfo(microsecond, TEST_DEVICE_ID); + int32_t ret = DCameraSoftbusLatency::GetInstance().GetTimeSyncInfo(TEST_DEVICE_ID); + EXPECT_EQ(DCAMERA_OK, ret); +} +} +} \ No newline at end of file diff --git a/services/channel/test/unittest/common/channel/session_bus_center.cpp b/services/channel/test/unittest/common/channel/session_bus_center.cpp index b2d93970..2d4f2d0f 100644 --- a/services/channel/test/unittest/common/channel/session_bus_center.cpp +++ b/services/channel/test/unittest/common/channel/session_bus_center.cpp @@ -25,4 +25,22 @@ int32_t GetLocalNodeDeviceInfo(const char *pkgName, NodeBasicInfo *info) (void)pkgName; *info = nodeBasicInfo_; return DH_SUCCESS; +} + +int32_t StartTimeSync(const char *pkgName, const char *targetNetworkId, TimeSyncAccuracy accuracy, + TimeSyncPeriod period, ITimeSyncCb *cb) +{ + (void)pkgName; + (void)targetNetworkId; + (void)accuracy; + (void)period; + (void)cb; + return DH_SUCCESS; +} + +int32_t StopTimeSync(const char *pkgName, const char *targetNetworkId) +{ + (void)pkgName; + (void)targetNetworkId; + return DH_SUCCESS; } \ No newline at end of file diff --git a/services/channel/test/unittest/common/channel/session_bus_center.h b/services/channel/test/unittest/common/channel/session_bus_center.h index 455d08f0..1afcba28 100644 --- a/services/channel/test/unittest/common/channel/session_bus_center.h +++ b/services/channel/test/unittest/common/channel/session_bus_center.h @@ -35,6 +35,44 @@ typedef struct { uint16_t deviceTypeId; } NodeBasicInfo; +typedef enum { + LOW_ACCURACY = 0, + NORMAL_ACCURACY, + HIGH_ACCURACY, + SUPER_HIGH_ACCURACY, + UNAVAIL_ACCURACY = 0xFFFF, +} TimeSyncAccuracy; + +typedef enum { + SHORT_PERIOD = 0, + NORMAL_PERIOD, + LONG_PERIOD, +} TimeSyncPeriod; + +typedef struct { + int32_t millisecond; + int32_t microsecond; + TimeSyncAccuracy accuracy; +} TimeSyncResult; + +typedef enum { + NODE_SPECIFIC = 0, + ALL_LNN, + WRITE_RTC, +} TimeSyncFlag; +typedef struct { + TimeSyncResult result; + TimeSyncFlag flag; + union { + char targetNetworkId[MOCK_NETWORK_ID_BUF_LEN]; + char masterNetworkId[MOCK_NETWORK_ID_BUF_LEN]; + } target; +} TimeSyncResultInfo; + +typedef struct { + void (*onTimeSyncResult)(const TimeSyncResultInfo *info, int32_t retCode); +} ITimeSyncCb; + int32_t GetLocalNodeDeviceInfo(const char *pkgName, NodeBasicInfo *info); #ifdef __cplusplus } -- Gitee