• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 
18 #ifdef GTEST_API_
19 #define private public
20 #define protected public
21 #endif
22 
23 #include "net_manager_constants.h"
24 #include "netnative_log_wrapper.h"
25 #include "distributed_manager.h"
26 
27 namespace OHOS {
28 namespace NetManagerStandard {
29 namespace {
30 using namespace testing::ext;
31 constexpr const char *DISTRIBUTED_TUN_CARD_NAME = "virnic";
32 } // namespace
33 
34 class DistributedManagerTest : public testing::Test {
35 public:
36     static void SetUpTestCase();
37     static void TearDownTestCase();
38     void SetUp();
39     void TearDown();
40 };
41 
SetUpTestCase()42 void DistributedManagerTest::SetUpTestCase() {}
43 
TearDownTestCase()44 void DistributedManagerTest::TearDownTestCase() {}
45 
SetUp()46 void DistributedManagerTest::SetUp() {}
47 
TearDown()48 void DistributedManagerTest::TearDown() {}
49 
50 HWTEST_F(DistributedManagerTest, CreateDistributedInterface001, TestSize.Level1)
51 {
52     auto result = DistributedManager::GetInstance().CreateDistributedInterface(DISTRIBUTED_TUN_CARD_NAME);
53     EXPECT_EQ(result, NETMANAGER_SUCCESS);
54 
55     DistributedManager::GetInstance().DestroyDistributedNic(DISTRIBUTED_TUN_CARD_NAME);
56 }
57 
58 HWTEST_F(DistributedManagerTest, SetDistributedNicMtu001, TestSize.Level1)
59 {
60     std::string ifName = "";
61     int32_t testNumber = 0;
62     auto result = DistributedManager::GetInstance().SetDistributedNicMtu(ifName, testNumber);
63     EXPECT_EQ(result, NETMANAGER_ERROR);
64 
65     ifName = DISTRIBUTED_TUN_CARD_NAME;
66     testNumber = 1;
67     result = DistributedManager::GetInstance().SetDistributedNicMtu(ifName, testNumber);
68     EXPECT_EQ(result, NETMANAGER_ERROR);
69 }
70 
71 HWTEST_F(DistributedManagerTest, SetDistributedNicMtu002, TestSize.Level1)
72 {
73     DistributedManager::GetInstance().CreateDistributedInterface(DISTRIBUTED_TUN_CARD_NAME);
74     std::string ifName = DISTRIBUTED_TUN_CARD_NAME;
75     int32_t testNumber = 1; // func ioctl will be failed, if mtu is too small
76     auto result = DistributedManager::GetInstance().SetDistributedNicMtu(ifName, testNumber);
77     EXPECT_EQ(result, NETMANAGER_ERROR);
78 
79     ifName = DISTRIBUTED_TUN_CARD_NAME;
80     testNumber = 1400;
81     result = DistributedManager::GetInstance().SetDistributedNicMtu(ifName, testNumber);
82     DistributedManager::GetInstance().DestroyDistributedNic(DISTRIBUTED_TUN_CARD_NAME);
83     EXPECT_EQ(result, NETMANAGER_SUCCESS);
84 }
85 
86 HWTEST_F(DistributedManagerTest, SetDistributedNicAddress001, TestSize.Level1)
87 {
88     std::string ifName = "";
89     std::string tunAddr = "";
90     auto result = DistributedManager::GetInstance().SetDistributedNicAddress(ifName, tunAddr);
91     EXPECT_EQ(result, NETMANAGER_ERROR);
92 
93     tunAddr = "1.23.45.6";
94     DistributedManager::GetInstance().CreateDistributedInterface(DISTRIBUTED_TUN_CARD_NAME);
95     result = DistributedManager::GetInstance().SetDistributedNicAddress(DISTRIBUTED_TUN_CARD_NAME, tunAddr);
96     DistributedManager::GetInstance().DestroyDistributedNic(DISTRIBUTED_TUN_CARD_NAME);
97     EXPECT_EQ(result, NETMANAGER_SUCCESS);
98 }
99 
100 HWTEST_F(DistributedManagerTest, SetDistributedNicUp001, TestSize.Level1)
101 {
102     auto result = DistributedManager::GetInstance().SetDistributedNicUp(DISTRIBUTED_TUN_CARD_NAME);
103     EXPECT_EQ(result, NETMANAGER_SUCCESS);
104 
105     result = DistributedManager::GetInstance().SetDistributedNicDown(DISTRIBUTED_TUN_CARD_NAME);
106     EXPECT_EQ(result, NETMANAGER_SUCCESS);
107 }
108 
109 HWTEST_F(DistributedManagerTest, InitIfreq001, TestSize.Level1)
110 {
111     ifreq ifr;
112     std::string cardName = "";
113     auto result = DistributedManager::GetInstance().InitIfreq(ifr, cardName);
114     EXPECT_EQ(result, NETMANAGER_SUCCESS);
115 }
116 
117 HWTEST_F(DistributedManagerTest, SetDistributedNicResult001, TestSize.Level1)
118 {
119     std::atomic_int fd = -1;
120     unsigned long cmd = 0;
121     ifreq ifr;
122     auto result = DistributedManager::GetInstance().SetDistributedNicResult(fd, cmd, ifr);
123     EXPECT_EQ(result, NETMANAGER_ERROR);
124 }
125 
126 HWTEST_F(DistributedManagerTest, InitIfreq002, TestSize.Level1)
127 {
128     ifreq ifr;
129     std::string cardName = "12345678901234567890";
130     auto result = DistributedManager::GetInstance().InitIfreq(ifr, cardName);
131     EXPECT_EQ(result, NETMANAGER_ERROR);
132 }
133 
134 HWTEST_F(DistributedManagerTest, SetDistributedNicMtu003, TestSize.Level1)
135 {
136     std::string ifName = "12345678901234567890";
137     int32_t mtu = 1;
138     auto result = DistributedManager::GetInstance().SetDistributedNicMtu(ifName, mtu);
139     EXPECT_EQ(result, NETMANAGER_ERROR);
140 }
141 
142 HWTEST_F(DistributedManagerTest, SetDistributedNicAddress002, TestSize.Level1)
143 {
144     std::string ifName = "12345678901234567890";
145     std::string tunAddr = "123";
146     auto result = DistributedManager::GetInstance().SetDistributedNicAddress(ifName, tunAddr);
147     EXPECT_EQ(result, NETMANAGER_ERROR);
148     ifName = "";
149     result = DistributedManager::GetInstance().SetDistributedNicAddress(ifName, tunAddr);
150     EXPECT_EQ(result, NETMANAGER_ERROR);
151 }
152 
153 HWTEST_F(DistributedManagerTest, SetDistributedNicUp002, TestSize.Level1)
154 {
155     std::string ifName = "12345678901234567890";
156     auto result = DistributedManager::GetInstance().SetDistributedNicUp(ifName);
157     EXPECT_EQ(result, NETMANAGER_ERROR);
158 }
159 
160 HWTEST_F(DistributedManagerTest, SetDistributedNicDown001, TestSize.Level1)
161 {
162     std::string ifName = "12345678901234567890";
163     auto result = DistributedManager::GetInstance().SetDistributedNicDown(ifName);
164     EXPECT_EQ(result, NETMANAGER_ERROR);
165 }
166 
167 HWTEST_F(DistributedManagerTest, CreateDistributedNic001, TestSize.Level1)
168 {
169     std::string virNicAddr = "";
170     std::string ifName = "12345678901234567890";
171     auto result = DistributedManager::GetInstance().CreateDistributedNic(virNicAddr, DISTRIBUTED_TUN_CARD_NAME);
172     EXPECT_EQ(result, NETMANAGER_ERROR);
173     virNicAddr = "1.23.45.6";
174     result = DistributedManager::GetInstance().CreateDistributedNic(virNicAddr, DISTRIBUTED_TUN_CARD_NAME);
175     EXPECT_EQ(result, NETMANAGER_SUCCESS);
176     result = DistributedManager::GetInstance().CreateDistributedNic(virNicAddr, ifName);
177     EXPECT_EQ(result, NETMANAGER_ERROR);
178 }
179 
180 HWTEST_F(DistributedManagerTest, CloseDistributedTunFd001, TestSize.Level1)
181 {
182     DistributedManager::GetInstance().CloseDistributedTunFd();
183     auto result = DistributedManager::GetInstance().CreateDistributedInterface(DISTRIBUTED_TUN_CARD_NAME);
184     EXPECT_EQ(result, NETMANAGER_SUCCESS);
185     DistributedManager::GetInstance().CloseDistributedTunFd();
186 }
187 
188 HWTEST_F(DistributedManagerTest, ConfigVirnicAndVeth001, TestSize.Level1)
189 {
190     std::string virNicAddr = "";
191     std::string virnicName = "";
192     std::string virnicVethName = "1";
193     auto result = DistributedManager::GetInstance().ConfigVirnicAndVeth(virNicAddr, virnicName, virnicVethName);
194     EXPECT_EQ(result, NETMANAGER_ERROR);
195     virnicName = "1";
196     virnicVethName = "";
197     result = DistributedManager::GetInstance().ConfigVirnicAndVeth(virNicAddr, virnicName, virnicVethName);
198     EXPECT_EQ(result, NETMANAGER_ERROR);
199     virnicName = "";
200     result = DistributedManager::GetInstance().ConfigVirnicAndVeth(virNicAddr, virnicName, virnicVethName);
201     EXPECT_EQ(result, NETMANAGER_ERROR);
202     virnicName = "1";
203     virnicVethName = "1";
204     result = DistributedManager::GetInstance().ConfigVirnicAndVeth(virNicAddr, virnicName, virnicVethName);
205     EXPECT_EQ(result, NETMANAGER_ERROR);
206     virNicAddr = "192.168.1.1";
207     virnicName = "virnic0";
208     virnicVethName = "virnic1";
209     result = DistributedManager::GetInstance().ConfigVirnicAndVeth(virNicAddr, virnicName, virnicVethName);
210     EXPECT_EQ(result, NETMANAGER_SUCCESS);
211 }
212 } // namespace NetManagerStandard
213 } // namespace OHOS
214