1c29fa5a6Sopenharmony_ci/*
2c29fa5a6Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License.
5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at
6c29fa5a6Sopenharmony_ci *
7c29fa5a6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
8c29fa5a6Sopenharmony_ci *
9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and
13c29fa5a6Sopenharmony_ci * limitations under the License.
14c29fa5a6Sopenharmony_ci */
15c29fa5a6Sopenharmony_ci
16c29fa5a6Sopenharmony_ci#include <gtest/gtest.h>
17c29fa5a6Sopenharmony_ci
18c29fa5a6Sopenharmony_ci#include "uds_socket.h"
19c29fa5a6Sopenharmony_ci
20c29fa5a6Sopenharmony_cinamespace OHOS {
21c29fa5a6Sopenharmony_cinamespace MMI {
22c29fa5a6Sopenharmony_cinamespace {
23c29fa5a6Sopenharmony_ciusing namespace testing::ext;
24c29fa5a6Sopenharmony_ci} // namespace
25c29fa5a6Sopenharmony_ci
26c29fa5a6Sopenharmony_ciclass UDSSocketTest : public testing::Test {
27c29fa5a6Sopenharmony_cipublic:
28c29fa5a6Sopenharmony_ci    static void SetUpTestCase(void) {}
29c29fa5a6Sopenharmony_ci    static void TearDownTestCase(void) {}
30c29fa5a6Sopenharmony_ci};
31c29fa5a6Sopenharmony_ci
32c29fa5a6Sopenharmony_ciclass UDSSocketUnitTest : public UDSSocket {
33c29fa5a6Sopenharmony_cipublic:
34c29fa5a6Sopenharmony_ci    UDSSocketUnitTest() {}
35c29fa5a6Sopenharmony_ci    virtual ~UDSSocketUnitTest() {}
36c29fa5a6Sopenharmony_ci};
37c29fa5a6Sopenharmony_ci
38c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, Close, TestSize.Level1)
39c29fa5a6Sopenharmony_ci{
40c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
41c29fa5a6Sopenharmony_ci    socObj.Close();
42c29fa5a6Sopenharmony_ci    EXPECT_EQ(-1, socObj.GetFd());
43c29fa5a6Sopenharmony_ci}
44c29fa5a6Sopenharmony_ci
45c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollCreate_001, TestSize.Level1)
46c29fa5a6Sopenharmony_ci{
47c29fa5a6Sopenharmony_ci    int32_t size = 0;
48c29fa5a6Sopenharmony_ci
49c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
50c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollCreate(size);
51c29fa5a6Sopenharmony_ci    ASSERT_LE(retResult, 0);
52c29fa5a6Sopenharmony_ci}
53c29fa5a6Sopenharmony_ci
54c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollCreate_002, TestSize.Level1)
55c29fa5a6Sopenharmony_ci{
56c29fa5a6Sopenharmony_ci    int32_t size = -1001;
57c29fa5a6Sopenharmony_ci
58c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
59c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollCreate(size);
60c29fa5a6Sopenharmony_ci    ASSERT_LE(retResult, 0);
61c29fa5a6Sopenharmony_ci}
62c29fa5a6Sopenharmony_ci
63c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollCtl_001, TestSize.Level1)
64c29fa5a6Sopenharmony_ci{
65c29fa5a6Sopenharmony_ci    int32_t fd = 1001;
66c29fa5a6Sopenharmony_ci    int32_t op = 0;
67c29fa5a6Sopenharmony_ci    struct epoll_event event = {};
68c29fa5a6Sopenharmony_ci
69c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
70c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollCtl(fd, op, event);
71c29fa5a6Sopenharmony_ci    ASSERT_EQ(-1, retResult);
72c29fa5a6Sopenharmony_ci}
73c29fa5a6Sopenharmony_ci
74c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollCtl_003, TestSize.Level1)
75c29fa5a6Sopenharmony_ci{
76c29fa5a6Sopenharmony_ci    int32_t fd = -1001;
77c29fa5a6Sopenharmony_ci    int32_t op = 1001;
78c29fa5a6Sopenharmony_ci    struct epoll_event event = {};
79c29fa5a6Sopenharmony_ci
80c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
81c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollCtl(fd, op, event);
82c29fa5a6Sopenharmony_ci    ASSERT_EQ(-1, retResult);
83c29fa5a6Sopenharmony_ci}
84c29fa5a6Sopenharmony_ci
85c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollCtl_004, TestSize.Level1)
86c29fa5a6Sopenharmony_ci{
87c29fa5a6Sopenharmony_ci    int32_t fd = -1001;
88c29fa5a6Sopenharmony_ci    int32_t op = -2002;
89c29fa5a6Sopenharmony_ci    struct epoll_event event = {};
90c29fa5a6Sopenharmony_ci
91c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
92c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollCtl(fd, op, event);
93c29fa5a6Sopenharmony_ci    ASSERT_EQ(-1, retResult);
94c29fa5a6Sopenharmony_ci}
95c29fa5a6Sopenharmony_ci
96c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollWait_001, TestSize.Level1)
97c29fa5a6Sopenharmony_ci{
98c29fa5a6Sopenharmony_ci    struct epoll_event events[MAX_EVENT_SIZE] = {};
99c29fa5a6Sopenharmony_ci    int32_t timeout = -1;
100c29fa5a6Sopenharmony_ci
101c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
102c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollWait(*events, MAX_EVENT_SIZE, timeout);
103c29fa5a6Sopenharmony_ci    ASSERT_EQ(-1, retResult);
104c29fa5a6Sopenharmony_ci}
105c29fa5a6Sopenharmony_ci
106c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollWait_002, TestSize.Level1)
107c29fa5a6Sopenharmony_ci{
108c29fa5a6Sopenharmony_ci    struct epoll_event events[MAX_EVENT_SIZE] = {};
109c29fa5a6Sopenharmony_ci    int32_t timeout = 1001;
110c29fa5a6Sopenharmony_ci
111c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
112c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollWait(*events, MAX_EVENT_SIZE, timeout);
113c29fa5a6Sopenharmony_ci    ASSERT_EQ(-1, retResult);
114c29fa5a6Sopenharmony_ci}
115c29fa5a6Sopenharmony_ci
116c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollWait_003, TestSize.Level1)
117c29fa5a6Sopenharmony_ci{
118c29fa5a6Sopenharmony_ci    struct epoll_event events[MAX_EVENT_SIZE] = {};
119c29fa5a6Sopenharmony_ci    int32_t timeout = -1001;
120c29fa5a6Sopenharmony_ci
121c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
122c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollWait(*events, MAX_EVENT_SIZE, timeout);
123c29fa5a6Sopenharmony_ci    ASSERT_EQ(-1, retResult);
124c29fa5a6Sopenharmony_ci}
125c29fa5a6Sopenharmony_ci
126c29fa5a6Sopenharmony_ciHWTEST_F(UDSSocketTest, EpollWait_004, TestSize.Level1)
127c29fa5a6Sopenharmony_ci{
128c29fa5a6Sopenharmony_ci    struct epoll_event events[MAX_EVENT_SIZE] = {};
129c29fa5a6Sopenharmony_ci    int32_t timeout = -1001;
130c29fa5a6Sopenharmony_ci
131c29fa5a6Sopenharmony_ci    UDSSocketUnitTest socObj;
132c29fa5a6Sopenharmony_ci    int32_t retResult = socObj.EpollWait(*events, MAX_EVENT_SIZE, timeout);
133c29fa5a6Sopenharmony_ci    ASSERT_EQ(-1, retResult);
134c29fa5a6Sopenharmony_ci}
135c29fa5a6Sopenharmony_ci} // namespace MMI
136c29fa5a6Sopenharmony_ci} // namespace OHOS
137