• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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