MCPcopy Create free account
hub / github.com/F-Stack/f-stack / test_parse_ipaddr_valid

Function test_parse_ipaddr_valid

dpdk/app/test/test_cmdline_ipaddr.c:332–573  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

330}
331
332int
333test_parse_ipaddr_valid(void)
334{
335 cmdline_parse_token_ipaddr_t token;
336 char buf[CMDLINE_TEST_BUFSIZE];
337 cmdline_ipaddr_t result;
338 unsigned i;
339 uint8_t flags;
340 int ret;
341
342 /* cover all cases in help */
343 for (flags = 0x1; flags < 0x8; flags++) {
344 token.ipaddr_data.flags = flags;
345
346 memset(buf, 0, sizeof(buf));
347
348 if (cmdline_get_help_ipaddr((cmdline_parse_token_hdr_t*)&token,
349 buf, sizeof(buf)) == -1) {
350 printf("Error: help rejected valid parameters!\n");
351 return -1;
352 }
353 }
354
355 /* test valid strings */
356 for (i = 0; i < RTE_DIM(ipaddr_valid_strs); i++) {
357
358 /* test each valid string against different flags */
359 for (flags = 1; flags < 0x8; flags++) {
360
361 /* skip bad flag */
362 if (flags == CMDLINE_IPADDR_NETWORK)
363 continue;
364
365 /* clear out everything */
366 memset(buf, 0, sizeof(buf));
367 memset(&result, 0, sizeof(result));
368 memset(&token, 0, sizeof(token));
369
370 token.ipaddr_data.flags = flags;
371
372 cmdline_get_help_ipaddr((cmdline_parse_token_hdr_t*)&token,
373 buf, sizeof(buf));
374
375 ret = cmdline_parse_ipaddr((cmdline_parse_token_hdr_t*)&token,
376 ipaddr_valid_strs[i].str, (void*)&result,
377 sizeof(result));
378
379 /* if should have passed, or should have failed */
380 if ((ret < 0) ==
381 (can_parse_addr(ipaddr_valid_strs[i].flags, flags))) {
382 printf("Error: unexpected behavior when parsing %s as %s!\n",
383 ipaddr_valid_strs[i].str, buf);
384 printf("Parsed result: ");
385 dump_addr(result);
386 printf("Expected result: ");
387 dump_addr(ipaddr_valid_strs[i].addr);
388 return -1;
389 }

Callers 1

test_cmdlineFunction · 0.85

Calls 7

memsetFunction · 0.85
cmdline_get_help_ipaddrFunction · 0.85
cmdline_parse_ipaddrFunction · 0.85
can_parse_addrFunction · 0.85
dump_addrFunction · 0.85
is_addr_differentFunction · 0.70
printfFunction · 0.50

Tested by

no test coverage detected