1 /*
2 * Copyright (c) 2023 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 "dns_lookup_parse.cpp"
24 #include "dns_param_cache.h"
25 #include "net_manager_constants.h"
26
27 namespace OHOS {
28 namespace NetsysNative {
29 namespace {
30 using namespace testing::ext;
31 using namespace OHOS::nmd;
32 static constexpr const uint32_t MAX_REQUESTDATA_LEN = 512;
33 static constexpr int32_t RR_CNAME = 5;
SearchNameServerTest001(const std::shared_ptr<DnsLookUpParse> & ins)34 void SearchNameServerTest001(const std::shared_ptr<DnsLookUpParse> &ins)
35 {
36 const uint32_t answerNns = 2;
37 GetAnswers getAnswers[2] = {};
38 getAnswers[0].queriesNum = 1;
39 getAnswers[0].nns = answerNns;
40 int32_t answersLens[2] = {0};
41 uint8_t querieData[2][2] = {{1, 2}, {2, 3}};
42 uint8_t *queryData = querieData[0];
43 uint8_t *data[1] = {queryData};
44 int32_t queriesLens[8] = {0};
45 ins->SearchNameServer(getAnswers, answersLens, data, queriesLens);
46 }
47
DnsGetAnswersTest001(const std::shared_ptr<DnsLookUpParse> & ins)48 void DnsGetAnswersTest001(const std::shared_ptr<DnsLookUpParse> &ins)
49 {
50 GetAnswers getAnswers;
51 uint8_t *queries[ARG_INDEX_2] = {0};
52 int32_t queriesLens[ARG_INDEX_2] = {0};
53 uint8_t *answers[ARG_INDEX_2] = {0};
54 int32_t answersLens[ARG_INDEX_2] = {0};
55 int32_t servFailRetry = 0;
56 ins->DnsGetAnswers(getAnswers, queries, queriesLens, answers, answersLens, servFailRetry);
57 }
58
SetSocAddrTest001(const std::shared_ptr<DnsLookUpParse> & ins)59 void SetSocAddrTest001(const std::shared_ptr<DnsLookUpParse> &ins)
60 {
61 uint32_t nns = 0;
62 int socketFd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
63 ASSERT_GE(socketFd, 0);
64 ins->SetSocAddr(socketFd, nns);
65 close(socketFd);
66 socketFd = -1;
67 }
68
SetSocAddrTest002(const std::shared_ptr<DnsLookUpParse> & ins)69 void SetSocAddrTest002(const std::shared_ptr<DnsLookUpParse> &ins)
70 {
71 uint32_t nns = 2;
72 int socketFd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
73 ASSERT_GE(socketFd, 0);
74 ins->SetSocAddr(socketFd, nns);
75 close(socketFd);
76 socketFd = -1;
77 }
78 } // namespace
79 class DNSLookupParserTest : public testing::Test {
80 public:
81 static void SetUpTestCase();
82 static void TearDownTestCase();
83 void SetUp();
84 void TearDown();
85 static inline std::shared_ptr<DnsLookUpParse> instance_ = nullptr;
86 };
87
SetUpTestCase()88 void DNSLookupParserTest::SetUpTestCase() {}
89
TearDownTestCase()90 void DNSLookupParserTest::TearDownTestCase() {}
91
SetUp()92 void DNSLookupParserTest::SetUp()
93 {
94 instance_ = std::make_shared<DnsLookUpParse>();
95 }
96
TearDown()97 void DNSLookupParserTest::TearDown() {}
98
GetNsFromConfTest001()99 void GetNsFromConfTest001()
100 {
101 NETNATIVE_LOGI("GetNsFromConfTest IPV4 enter");
102 struct ResolvConf resolvConf;
103 resolvConf.ns[0].family = AF_INET;
104 int32_t family = 0;
105 socklen_t saLen = 0;
106 uint32_t nns = 1;
107 DnsLookUpParse::GetNsFromConf(&resolvConf, nns, family, saLen);
108 }
109
GetNsFromConfTest002()110 void GetNsFromConfTest002()
111 {
112 NETNATIVE_LOGI("GetNsFromConfTest IPV6 enter");
113 struct ResolvConf resolvConf;
114 resolvConf.ns[0].family = AF_INET6;
115 int32_t family = 0;
116 socklen_t saLen = 0;
117 uint32_t nns = 1;
118 DnsLookUpParse::GetNsFromConf(&resolvConf, nns, family, saLen);
119 }
120
SearchNameServerTest001()121 void SearchNameServerTest001()
122 {
123 NETNATIVE_LOGI("SearchNameServerTest queries zero enter");
124 DnsLookUpParse parser;
125 struct GetAnswers answer;
126 answer.queriesNum = 0;
127 int32_t lens[3];
128 uint8_t *queries = nullptr;
129 int32_t queriesLen = 3;
130 parser.SearchNameServer(&answer, lens, &queries, &queriesLen);
131 }
132
SearchNameServerTest002()133 void SearchNameServerTest002()
134 {
135 NETNATIVE_LOGI("SearchNameServerTest invalid len enter");
136 DnsLookUpParse parser;
137 struct GetAnswers answer;
138 answer.queriesNum = 1;
139 int32_t lens[3] = {1, 0, 0};
140 uint8_t *queries = nullptr;
141 int32_t queriesLen = 3;
142 parser.SearchNameServer(&answer, lens, &queries, &queriesLen);
143 }
144
SearchNameServerTest003()145 void SearchNameServerTest003()
146 {
147 NETNATIVE_LOGI("SearchNameServerTest invalid nns enter");
148 DnsLookUpParse parser;
149 struct GetAnswers answer;
150 answer.queriesNum = 1;
151 answer.nns = 0;
152 int32_t lens[3] = {0, 0, 0};
153 uint8_t *queries = nullptr;
154 int32_t queriesLen = 3;
155 parser.SearchNameServer(&answer, lens, &queries, &queriesLen);
156 }
157
158 HWTEST_F(DNSLookupParserTest, GetResolvConfTest001, TestSize.Level1)
159 {
160 GetNsFromConfTest001();
161 GetNsFromConfTest002();
162 NETNATIVE_LOGI("GetResolvConfTest invalid netid enter");
163 DnsLookUpParse parser;
164 struct ResolvConf resolvConf;
165 char search[16] = {0};
166 int32_t ret = parser.GetResolvConf(&resolvConf, search, 0, 100);
167 EXPECT_EQ(ret, -1);
168 }
169
170 HWTEST_F(DNSLookupParserTest, GetResolvConfTest002, TestSize.Level1)
171 {
172 NETNATIVE_LOGI("SetSocAddrTest enter");
173 DnsLookUpParse parser;
174 int32_t sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
175 uint32_t nns = 1;
176 parser.SetSocAddr(sock, nns);
177 NETNATIVE_LOGI("GetResolvConfTest valid netid enter");
178 struct ResolvConf resolvConf;
179 char search[16] = {0};
180 int32_t ret = parser.GetResolvConf(&resolvConf, search, 0, 101);
181 close(sock);
182 sock = -1;
183 EXPECT_EQ(ret, -1);
184 }
185
186 HWTEST_F(DNSLookupParserTest, GetResolvConfTest003, TestSize.Level1)
187 {
188 struct ResolvConf resolvConf;
189 auto ret = instance_->GetResolvConf(&resolvConf, nullptr, 0, 100);
190 EXPECT_EQ(ret, -1);
191 }
192
193 HWTEST_F(DNSLookupParserTest, GetNsFromConfTest001, TestSize.Level1)
194 {
195 ResolvConf cfg;
196 AddrData data;
197 int32_t family = 0;
198 uint32_t nns = 0;
199 socklen_t saLen = 0;
200 data.family = AF_INET;
201 cfg.ns[0] = data;
202 cfg.nns = 1;
203 instance_->GetNsFromConf(&cfg, nns, family, saLen);
204 EXPECT_EQ(nns, cfg.nns);
205 }
206
207 HWTEST_F(DNSLookupParserTest, GetNsFromConfTest002, TestSize.Level1)
208 {
209 ResolvConf cfg;
210 AddrData data;
211 int32_t family = 0;
212 uint32_t nns = 0;
213 socklen_t saLen = 0;
214 data.family = AF_INET6;
215 cfg.ns[0] = data;
216 cfg.nns = 1;
217 instance_->GetNsFromConf(&cfg, nns, family, saLen);
218 EXPECT_EQ(family, AF_INET6);
219 }
220
221 HWTEST_F(DNSLookupParserTest, LookupIpLiteralTest001, TestSize.Level1)
222 {
223 SearchNameServerTest001();
224 SearchNameServerTest002();
225 SearchNameServerTest003();
226 NETNATIVE_LOGI("LookupIpLiteralTest IPV6 enter");
227 DnsLookUpParse parser;
228 struct AddrData addrData;
229 int32_t ret = parser.LookupIpLiteral(&addrData, "110.242.68.3", AF_INET6);
230 EXPECT_EQ(ret, EAI_NONAME);
231 }
232
233 HWTEST_F(DNSLookupParserTest, LookupIpLiteralTest002, TestSize.Level1)
234 {
235 NETNATIVE_LOGI("LookupIpLiteralTest IPV4 enter");
236 DnsLookUpParse parser;
237 struct AddrData addrData;
238 int32_t ret = parser.LookupIpLiteral(&addrData, "110.242.68.3", AF_INET);
239 EXPECT_EQ(ret, 1);
240 }
241
242 HWTEST_F(DNSLookupParserTest, LookupIpLiteralTest003, TestSize.Level1)
243 {
244 NETNATIVE_LOGI("LookupIpLiteralTest invalid host name enter");
245 DnsLookUpParse parser;
246 struct AddrData addrData;
247 int32_t ret = parser.LookupIpLiteral(&addrData, "abcd", AF_INET);
248 EXPECT_EQ(ret, DNS_ERR_NONE);
249 }
250
251 HWTEST_F(DNSLookupParserTest, LookupIpLiteralTest004, TestSize.Level1)
252 {
253 struct AddrData addrData;
254 std::string name = "abc";
255 name[0] = 0;
256 auto ret = instance_->LookupIpLiteral(&addrData, name, AF_INET);
257 EXPECT_EQ(ret, DNS_ERR_NONE);
258 }
259
260 HWTEST_F(DNSLookupParserTest, DnsSendQueriesTest001, TestSize.Level1)
261 {
262 DnsGetAnswersTest001(instance_);
263 SearchNameServerTest001(instance_);
264 GetAnswers getAnswers;
265 getAnswers.timeOut = 0;
266 getAnswers.attempts = 0;
267 uint8_t *queries[ARG_INDEX_2] = {0};
268 int32_t queriesLens[ARG_INDEX_2] = {0};
269 uint8_t *answers[ARG_INDEX_2] = {0};
270 int32_t answersLens[ARG_INDEX_2] = {0};
271 auto ret = instance_->DnsSendQueries(getAnswers, queries, queriesLens, answers, answersLens);
272 EXPECT_EQ(ret, DNS_ERR_NONE);
273 }
274
275 HWTEST_F(DNSLookupParserTest, IsValidHostnameTest001, TestSize.Level1)
276 {
277 NETNATIVE_LOGI("IsValidHostnameTest invalid nns enter");
278 std::string host = "abcd";
279 int32_t ret = DnsLookUpParse::IsValidHostname(host);
280 EXPECT_EQ(ret, 1);
281 }
282
283 HWTEST_F(DNSLookupParserTest, IsValidHostnameTest002, TestSize.Level1)
284 {
285 SetSocAddrTest001(instance_);
286 SetSocAddrTest002(instance_);
287 std::string host = "a";
288 for (uint32_t i = 0; i <= 255; i++) {
289 host.append("a");
290 }
291 int32_t ret = instance_->IsValidHostname(host);
292 EXPECT_EQ(ret, DNS_ERR_NONE);
293 }
294
295 HWTEST_F(DNSLookupParserTest, ResMSendRcTest001, TestSize.Level1)
296 {
297 int32_t queriesNum = 1;
298 uint8_t *queries[ARG_INDEX_2] = {0};
299 int32_t queriesLens[ARG_INDEX_2] = {0};
300 uint8_t *answers[ARG_INDEX_2] = {0};
301 int32_t answersLens[ARG_INDEX_2] = {0};
302 int32_t answersSize = 2;
303 ResolvConf conf;
304 AddrData data;
305 data.family = AF_INET6;
306 conf.ns[0] = data;
307 conf.nns = 1;
308 int32_t netId = 100;
309 auto ret = instance_->ResMSendRc(queriesNum, queries, queriesLens, answers, answersLens, answersSize, &conf, netId);
310 EXPECT_EQ(ret, DNS_ERR_NONE);
311 }
312
313 HWTEST_F(DNSLookupParserTest, ResMSendRcTest002, TestSize.Level1)
314 {
315 int32_t queriesNum = 1;
316 uint8_t *queries[ARG_INDEX_2] = {0};
317 int32_t queriesLens[ARG_INDEX_2] = {0};
318 uint8_t *answers[ARG_INDEX_2] = {0};
319 int32_t answersLens[ARG_INDEX_2] = {0};
320 int32_t answersSize = 2;
321 ResolvConf conf;
322 AddrData data;
323 data.family = AF_INET;
324 conf.ns[0] = data;
325 conf.nns = 1;
326 int32_t netId = 100;
327 auto ret = instance_->ResMSendRc(queriesNum, queries, queriesLens, answers, answersLens, answersSize, &conf, netId);
328 EXPECT_EQ(ret, DNS_ERR_NONE);
329 }
330
331 HWTEST_F(DNSLookupParserTest, DnsExpand001, TestSize.Level1)
332 {
333 uint8_t base[ARG_INDEX_2] = {0};
334 uint8_t end[ARG_INDEX_2] = {0};
335 char dest[MAX_REQUESTDATA_LEN] = {0};
336 int32_t space = 0;
337 int32_t ret = instance_->DnsExpand(base, end, end, dest, space); // src == end
338 EXPECT_EQ(ret, INVALID_LENGTH);
339 }
340
341 HWTEST_F(DNSLookupParserTest, DnsExpand002, TestSize.Level1)
342 {
343 uint8_t base[ARG_INDEX_2] = {0};
344 uint8_t end[ARG_INDEX_2] = {0};
345 uint8_t src[ARG_INDEX_2] = {0, 1};
346 char dest[MAX_REQUESTDATA_LEN] = {0};
347 int32_t space = 0;
348 int32_t ret = instance_->DnsExpand(base, end, src, dest, space);
349 EXPECT_EQ(ret, INVALID_LENGTH);
350 }
351
352 HWTEST_F(DNSLookupParserTest, DnsExpand003, TestSize.Level1)
353 {
354 uint8_t base[ARG_INDEX_2] = {0};
355 uint8_t end[ARG_INDEX_2] = {0};
356 uint8_t src[ARG_INDEX_2] = {0, 1};
357 char dest[MAX_REQUESTDATA_LEN] = {0};
358 int32_t space = -1;
359 int32_t ret = instance_->DnsExpand(base, end, src, dest, space);
360 EXPECT_EQ(ret, INVALID_LENGTH);
361 }
362
363 HWTEST_F(DNSLookupParserTest, DnsExpand004, TestSize.Level1)
364 {
365 const int32_t space = 10;
366 uint8_t src[] = "a";
367 uint32_t srcSize = sizeof("a");
368 char dest[space] = {0};
369 int32_t ret = instance_->DnsExpand(&src[0], &src[srcSize], src, dest, space);
370 EXPECT_EQ(ret, INVALID_LENGTH);
371 }
372
373 HWTEST_F(DNSLookupParserTest, DnsExpand005, TestSize.Level1)
374 {
375 const int32_t space = 10;
376 uint8_t src[] = "abcdefghifaddedg";
377 uint32_t srcSize = sizeof("abcdefghifaddedg");
378 char dest[space] = {0};
379 src[0] = src[0] | MASK_HIGH_TWO_BITS;
380 src[1] = 0xff;
381 int32_t ret = instance_->DnsExpand(&src[0], &src[srcSize], src, dest, space);
382 EXPECT_EQ(ret, INVALID_LENGTH);
383 }
384
385 HWTEST_F(DNSLookupParserTest, DnsExpand006, TestSize.Level1)
386 {
387 const int32_t space = 10;
388 uint8_t src[] = "abcdefghifaddedg";
389 uint32_t srcSize = sizeof("abcdefghifaddedg");
390 char dest[space] = {0};
391 src[0] = 0x00;
392 src[0] = src[0] & (~MASK_HIGH_TWO_BITS);
393 src[1] = 0xff;
394 src[1] = src[1] & (~MASK_HIGH_TWO_BITS);
395 int32_t ret = instance_->DnsExpand(&src[0], &src[srcSize], src, dest, space);
396 EXPECT_EQ(ret, 1);
397 }
398
399 HWTEST_F(DNSLookupParserTest, DnsExpand007, TestSize.Level1)
400 {
401 const int32_t space = 10;
402 uint8_t src[] = "abcdefghifaddedg";
403 uint32_t srcSize = sizeof("abcdefghifaddedg");
404 char dest[space] = {0};
405 src[0] = 0x00;
406 src[0] = src[0] & (~MASK_HIGH_TWO_BITS);
407 src[1] = 0x01;
408 src[1] = src[1] & (~MASK_HIGH_TWO_BITS);
409 int32_t ret = instance_->DnsExpand(&src[0], &src[srcSize], src, dest, space);
410 EXPECT_EQ(ret, 1);
411 }
412
413 HWTEST_F(DNSLookupParserTest, DnsExpand008, TestSize.Level1)
414 {
415 const int32_t space = 10;
416 uint8_t src[] = "abcdefghifaddedg";
417 uint32_t srcSize = sizeof("abcdefghifaddedg");
418 char dest[space] = {0};
419 src[0] = 0x01;
420 src[0] &= ~MASK_HIGH_TWO_BITS;
421 int32_t ret = instance_->DnsExpand(&src[0], &src[srcSize], src, dest, space);
422 EXPECT_EQ(ret, INVALID_LENGTH);
423 }
424
425 HWTEST_F(DNSLookupParserTest, DnsParseCallback001, TestSize.Level1)
426 {
427 DpcCtx ctx;
428 ctx.cnt = MAXADDRS + 1;
429 int32_t rr = 0;
430 int32_t len = 0;
431 auto ret = instance_->DnsParseCallback(&ctx, rr, nullptr, len, nullptr);
432 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
433 }
434
435 HWTEST_F(DNSLookupParserTest, DnsParseCallback002, TestSize.Level1)
436 {
437 DpcCtx ctx;
438 ctx.cnt = MAXADDRS - 1;
439 int32_t rr = RR_A;
440 int32_t len = ADDR_A4_LEN + 1;
441 uint8_t data[8] = {0};
442 uint8_t packet[8] = {0};
443 auto ret = instance_->DnsParseCallback(&ctx, rr, data, len, packet);
444 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
445 }
446
447 HWTEST_F(DNSLookupParserTest, DnsParseCallback003, TestSize.Level1)
448 {
449 DpcCtx ctx;
450 AddrData buf[MAXADDRS] = {};
451 ctx.addrs = buf;
452 ctx.cnt = MAXADDRS - 1;
453 char str[] = "test data";
454 ctx.canon = str;
455 int32_t rr = RR_A;
456 int32_t len = ADDR_A4_LEN;
457 uint8_t data[8] = {0};
458 uint8_t packet[8] = {0};
459 auto ret = instance_->DnsParseCallback(&ctx, rr, &data, len, &packet);
460 EXPECT_EQ(ret, DNS_ERR_NONE);
461 }
462
463 HWTEST_F(DNSLookupParserTest, DnsParseCallback004, TestSize.Level1)
464 {
465 DpcCtx ctx;
466 AddrData buf[MAXADDRS] = {};
467 ctx.addrs = buf;
468 ctx.cnt = MAXADDRS - 1;
469 int32_t rr = RR_AAAA;
470 int32_t len = ADDR_A6_LEN + 1;
471 uint8_t data[8] = {0};
472 uint8_t packet[8] = {0};
473 auto ret = instance_->DnsParseCallback(&ctx, rr, data, len, packet);
474 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
475 }
476
477 HWTEST_F(DNSLookupParserTest, DnsParseCallback005, TestSize.Level1)
478 {
479 DpcCtx ctx;
480 AddrData buf[MAXADDRS] = {};
481 ctx.addrs = buf;
482 ctx.cnt = MAXADDRS - 1;
483 char str[] = "test data";
484 ctx.canon = str;
485 ctx.cnt = 0;
486 int32_t rr = RR_AAAA;
487 int32_t len = ADDR_A6_LEN;
488 uint8_t data[8] = {0};
489 uint8_t packet[8] = {0};
490 auto ret = instance_->DnsParseCallback(&ctx, rr, data, len, packet);
491 EXPECT_EQ(ret, DNS_ERR_NONE);
492 }
493
494 HWTEST_F(DNSLookupParserTest, DnsParseCallback006, TestSize.Level1)
495 {
496 DpcCtx ctx;
497 AddrData buf[MAXADDRS] = {};
498 ctx.addrs = buf;
499 ctx.cnt = MAXADDRS - 1;
500 int32_t rr = RR_CNAME;
501 int32_t len = ADDR_A6_LEN;
502 uint8_t data[8] = {0};
503 uint8_t packet[8] = {0};
504 auto ret = instance_->DnsParseCallback(&ctx, rr, data, len, packet);
505 EXPECT_EQ(ret, DNS_ERR_NONE);
506 }
507
508 HWTEST_F(DNSLookupParserTest, DnsParse001, TestSize.Level1)
509 {
510 DpcCtx ctx;
511 uint8_t *answers = nullptr;
512 int32_t answersLen = RLEN_MAXNS - 1;
513 auto ret = instance_->DnsParse(answers, answersLen, nullptr, &ctx);
514 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
515 }
516
517 HWTEST_F(DNSLookupParserTest, DnsParse002, TestSize.Level1)
518 {
519 DpcCtx ctx;
520 uint8_t answers[] = "abcdefghifaddedg";
521 answers[ARG_INDEX_3] = answers[ARG_INDEX_3] | ANSWERS_OPERATION;
522 int32_t answersLen = 15;
__anon059d58dc0202(void *, int, const void *, int, const void *) 523 auto callback = [](void *, int, const void *, int, const void *) { return 0; };
524 auto ret = instance_->DnsParse(answers, answersLen, callback, &ctx);
525 EXPECT_EQ(ret, DNS_ERR_NONE);
526 }
527
528 HWTEST_F(DNSLookupParserTest, DnsParse003, TestSize.Level1)
529 {
530 DpcCtx ctx;
531 uint8_t answers[] = "abcdefghifaddedg";
532 int32_t answersLen = 15;
533 answers[ARG_INDEX_3] = answers[ARG_INDEX_3] & (~ANSWERS_OPERATION);
__anon059d58dc0302(void *, int, const void *, int, const void *) 534 auto callback = [](void *, int, const void *, int, const void *) { return 0; };
535 auto ret = instance_->DnsParse(answers, answersLen, callback, &ctx);
536 EXPECT_EQ(ret, INVALID_LENGTH);
537 }
538
539 HWTEST_F(DNSLookupParserTest, ResMkQuery001, TestSize.Level1)
540 {
541 int32_t op = 0;
542 std::string dName = "test name";
543 dName[dName.length() - 1] = DOT;
544 int32_t mineClass = 0;
545 int32_t type = 0;
546 const uint8_t *data = nullptr;
547 int32_t dataLen = 0;
548 const uint8_t *newrr = nullptr;
549 uint8_t *buf = nullptr;
550 int32_t bufLen = 0;
551 auto ret = instance_->ResMkQuery(op, dName, mineClass, type, data, dataLen, newrr, buf, bufLen);
552 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
553 }
554
555 HWTEST_F(DNSLookupParserTest, ResMkQuery002, TestSize.Level1)
556 {
557 int32_t op = 0;
558 std::string dName;
559 for (int32_t i = 0; i < HOST_MAX_LEN; i++) {
560 dName.append("a");
561 }
562 int32_t mineClass = 0;
563 int32_t type = 0;
564 const uint8_t *data = nullptr;
565 int32_t dataLen = 0;
566 const uint8_t *newrr = nullptr;
567 uint8_t *buf = nullptr;
568 int32_t bufLen = 0;
569 auto ret = instance_->ResMkQuery(op, dName, mineClass, type, data, dataLen, newrr, buf, bufLen);
570 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
571 }
572
573 HWTEST_F(DNSLookupParserTest, ResMkQuery003, TestSize.Level1)
574 {
575 int32_t op = 0;
576 std::string dName;
577 for (int32_t i = 0; i < HOST_MAX_LEN / 2; i++) {
578 dName.append("a");
579 }
580 int32_t mineClass = 0;
581 int32_t type = 0;
582 const uint8_t *data = nullptr;
583 int32_t dataLen = 0;
584 const uint8_t *newrr = nullptr;
585 uint8_t *buf = nullptr;
586 int32_t bufLen = 0;
587 auto ret = instance_->ResMkQuery(op, dName, mineClass, type, data, dataLen, newrr, buf, bufLen);
588 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
589 }
590
591 HWTEST_F(DNSLookupParserTest, ResMkQuery004, TestSize.Level1)
592 {
593 int32_t op = OP_MAX + 1;
594 std::string dName;
595 for (int32_t i = 0; i < HOST_MAX_LEN / 2; i++) {
596 dName.append("a");
597 }
598 int32_t mineClass = 0;
599 int32_t type = 0;
600 const uint8_t *data = nullptr;
601 int32_t dataLen = 0;
602 const uint8_t *newrr = nullptr;
603 uint8_t *buf = nullptr;
604 int32_t bufLen = (HOST_MAX_LEN / 2) + 1;
605 auto ret = instance_->ResMkQuery(op, dName, mineClass, type, data, dataLen, newrr, buf, bufLen);
606 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
607 }
608
609 HWTEST_F(DNSLookupParserTest, ResMkQuery005, TestSize.Level1)
610 {
611 int32_t op = OP_MAX - 1;
612 std::string dName;
613 for (int32_t i = 0; i < HOST_MAX_LEN / 2; i++) {
614 dName.append("a");
615 }
616 int32_t mineClass = MINE_CLASS_MAX + 1;
617 int32_t type = 0;
618 const uint8_t *data = nullptr;
619 int32_t dataLen = 0;
620 const uint8_t *newrr = nullptr;
621 uint8_t *buf = nullptr;
622 int32_t bufLen = (HOST_MAX_LEN / 2) + 1;
623 auto ret = instance_->ResMkQuery(op, dName, mineClass, type, data, dataLen, newrr, buf, bufLen);
624 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
625 }
626
627 HWTEST_F(DNSLookupParserTest, ResMkQuery006, TestSize.Level1)
628 {
629 int32_t op = OP_MAX - 1;
630 std::string dName;
631 for (int32_t i = 0; i < HOST_MAX_LEN / 2; i++) {
632 dName.append("a");
633 }
634 int32_t mineClass = MINE_CLASS_MAX - 1;
635 int32_t type = TYPE_MAX + 1;
636 const uint8_t *data = nullptr;
637 int32_t dataLen = 0;
638 const uint8_t *newrr = nullptr;
639 uint8_t *buf = nullptr;
640 int32_t bufLen = (HOST_MAX_LEN / 2) + 1;
641 auto ret = instance_->ResMkQuery(op, dName, mineClass, type, data, dataLen, newrr, buf, bufLen);
642 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
643 }
644
645 HWTEST_F(DNSLookupParserTest, ResMkQuery007, TestSize.Level1)
646 {
647 int32_t op = OP_MAX - 1;
648 std::string dName;
649 for (int32_t i = 0; i < HOST_MAX_LEN / 2; i++) {
650 dName.append("a");
651 }
652 int32_t mineClass = MINE_CLASS_MAX - 1;
653 int32_t type = TYPE_MAX - 1;
654 const uint8_t *data = nullptr;
655 int32_t dataLen = 0;
656 const uint8_t *newrr = nullptr;
657 uint8_t *buf = nullptr;
658 int32_t bufLen = (HOST_MAX_LEN / 2) + 1;
659 auto ret = instance_->ResMkQuery(op, dName, mineClass, type, data, dataLen, newrr, buf, bufLen);
660 EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_ERROR);
661 }
662 } // namespace NetsysNative
663 } // namespace OHOS