Skip to content

Commit 9db462a

Browse files
committed
unit/ip4: Test address conversion
1 parent 0f1162e commit 9db462a

File tree

1 file changed

+222
-0
lines changed

1 file changed

+222
-0
lines changed

test/unit/ip4/test_ip4.c

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,9 +254,23 @@ START_TEST(test_127_0_0_1)
254254
}
255255
END_TEST
256256

257+
START_TEST(test_ipaddr_addr)
258+
{
259+
u32_t addr32;
260+
LWIP_UNUSED_ARG(_i);
261+
262+
addr32 = ipaddr_addr("1.2.3.4");
263+
fail_unless(addr32 == PP_HTONL(0x01020304UL));
264+
265+
addr32 = ipaddr_addr("foobar");
266+
fail_unless(addr32 == PP_HTONL(0xffffffffUL));
267+
}
268+
END_TEST
269+
257270
START_TEST(test_ip4addr_aton)
258271
{
259272
ip4_addr_t ip_addr;
273+
u8_t ok;
260274

261275
LWIP_UNUSED_ARG(_i);
262276

@@ -267,6 +281,211 @@ START_TEST(test_ip4addr_aton)
267281
fail_unless(ip4addr_aton("192.168.0xd3", &ip_addr) == 1);
268282
fail_unless(ip4addr_aton("192.168.0xz5", &ip_addr) == 0);
269283
fail_unless(ip4addr_aton("192.168.095", &ip_addr) == 0);
284+
285+
ok = ip4addr_aton("foobar", &ip_addr);
286+
fail_unless(ok == 0);
287+
288+
ok = ip4addr_aton("", &ip_addr);
289+
fail_unless(ok == 0);
290+
291+
ok = ip4addr_aton(" ", &ip_addr);
292+
fail_unless(ok == 0);
293+
294+
ok = ip4addr_aton(".", &ip_addr);
295+
fail_unless(ok == 0);
296+
297+
ok = ip4addr_aton("1", &ip_addr);
298+
fail_unless(ok == 1);
299+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x00000001UL));
300+
301+
ok = ip4addr_aton("01", &ip_addr);
302+
fail_unless(ok == 1);
303+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x00000001UL));
304+
305+
ok = ip4addr_aton("0y", &ip_addr);
306+
fail_unless(ok == 0);
307+
308+
ok = ip4addr_aton("0x!", &ip_addr);
309+
fail_unless(ok == 0);
310+
311+
ok = ip4addr_aton("0x?", &ip_addr);
312+
fail_unless(ok == 0);
313+
314+
ok = ip4addr_aton("0x[", &ip_addr);
315+
fail_unless(ok == 0);
316+
317+
ok = ip4addr_aton("0x{", &ip_addr);
318+
fail_unless(ok == 0);
319+
320+
ok = ip4addr_aton("0x", &ip_addr);
321+
fail_unless(ok == 1);
322+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x00000000UL));
323+
324+
ok = ip4addr_aton("0x0102030405", &ip_addr);
325+
fail_unless(ok == 1);
326+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x02030405UL));
327+
328+
ok = ip4addr_aton("0x01000000 ", &ip_addr);
329+
fail_unless(ok == 1);
330+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01000000UL));
331+
332+
ok = ip4addr_aton("0X01020000", &ip_addr);
333+
fail_unless(ok == 1);
334+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020000UL));
335+
336+
ok = ip4addr_aton("0x01020300", &ip_addr);
337+
fail_unless(ok == 1);
338+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020300UL));
339+
340+
ok = ip4addr_aton("0x0a0B0C0d", &ip_addr);
341+
fail_unless(ok == 1);
342+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x0a0b0c0dUL));
343+
344+
ok = ip4addr_aton("0x0F090c0x", &ip_addr);
345+
fail_unless(ok == 0);
346+
347+
ok = ip4addr_aton("0x0a0b0c0[", &ip_addr);
348+
fail_unless(ok == 0);
349+
350+
ok = ip4addr_aton("1.X", &ip_addr);
351+
fail_unless(ok == 0);
352+
353+
ok = ip4addr_aton("999.2", &ip_addr);
354+
fail_unless(ok == 0);
355+
356+
ok = ip4addr_aton("1.999999999", &ip_addr);
357+
fail_unless(ok == 0);
358+
359+
ok = ip4addr_aton("1.2 ", &ip_addr);
360+
fail_unless(ok == 1);
361+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01000002UL));
362+
363+
ok = ip4addr_aton("1.2.X", &ip_addr);
364+
fail_unless(ok == 0);
365+
366+
ok = ip4addr_aton("1.999.3", &ip_addr);
367+
fail_unless(ok == 0);
368+
369+
ok = ip4addr_aton("1.2.999999", &ip_addr);
370+
fail_unless(ok == 0);
371+
372+
ok = ip4addr_aton("999.2.3", &ip_addr);
373+
fail_unless(ok == 0);
374+
375+
ok = ip4addr_aton("1.2.3 ", &ip_addr);
376+
fail_unless(ok == 1);
377+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020003UL));
378+
379+
ok = ip4addr_aton("1.2.3.X", &ip_addr);
380+
fail_unless(ok == 0);
381+
382+
ok = ip4addr_aton("1.2.999.X", &ip_addr);
383+
fail_unless(ok == 0);
384+
385+
ok = ip4addr_aton("999.2.3.4", &ip_addr);
386+
fail_unless(ok == 0);
387+
388+
ok = ip4addr_aton("1.999.3.4", &ip_addr);
389+
fail_unless(ok == 0);
390+
391+
ok = ip4addr_aton("1.2.999.4", &ip_addr);
392+
fail_unless(ok == 0);
393+
394+
ok = ip4addr_aton("1.2.3.999", &ip_addr);
395+
fail_unless(ok == 0);
396+
397+
ok = ip4addr_aton("1.2.3.4", &ip_addr);
398+
fail_unless(ok == 1);
399+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020304UL));
400+
401+
ok = ip4addr_aton("1.2.3.4 ", &ip_addr);
402+
fail_unless(ok == 1);
403+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020304UL));
404+
405+
ok = ip4addr_aton("1.2.3.4\f", &ip_addr);
406+
fail_unless(ok == 1);
407+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020304UL));
408+
409+
ok = ip4addr_aton("1.2.3.4\n", &ip_addr);
410+
fail_unless(ok == 1);
411+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020304UL));
412+
413+
ok = ip4addr_aton("1.2.3.4\r", &ip_addr);
414+
fail_unless(ok == 1);
415+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020304UL));
416+
417+
ok = ip4addr_aton("1.2.3.4\t", &ip_addr);
418+
fail_unless(ok == 1);
419+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020304UL));
420+
421+
ok = ip4addr_aton("1.2.3.4\v", &ip_addr);
422+
fail_unless(ok == 1);
423+
fail_unless(ip4_addr_get_u32(&ip_addr) == PP_HTONL(0x01020304UL));
424+
425+
ok = ip4addr_aton("1.2.3.4.5", &ip_addr);
426+
fail_unless(ok == 0);
427+
428+
ok = ip4addr_aton("1.2.3.4", NULL);
429+
fail_unless(ok == 1);
430+
}
431+
END_TEST
432+
433+
START_TEST(test_ip4addr_ntoa)
434+
{
435+
u8_t ok;
436+
ip4_addr_t addr;
437+
char *s;
438+
char buf[9];
439+
LWIP_UNUSED_ARG(_i);
440+
441+
ok = ip4addr_aton("1.2.3.4", &addr);
442+
fail_unless(ok == 1);
443+
444+
s = ip4addr_ntoa(&addr);
445+
fail_unless(s != NULL);
446+
447+
if (s != NULL) {
448+
fail_unless(strcmp("1.2.3.4", s) == 0);
449+
}
450+
451+
ok = ip4addr_aton("1.2.3.45", &addr);
452+
fail_unless(ok == 1);
453+
454+
memset(buf, 0, sizeof(buf));
455+
s = ip4addr_ntoa_r(&addr, buf, (int)sizeof(buf));
456+
fail_unless(s != NULL);
457+
458+
if (s != NULL) {
459+
fail_unless(strcmp("1.2.3.45", s) == 0);
460+
}
461+
462+
s = ip4addr_ntoa_r(&addr, buf, 0);
463+
fail_unless(s == NULL);
464+
465+
s = ip4addr_ntoa_r(&addr, buf, 1);
466+
fail_unless(s == NULL);
467+
468+
s = ip4addr_ntoa_r(&addr, buf, 2);
469+
fail_unless(s == NULL);
470+
}
471+
END_TEST
472+
473+
START_TEST(test_ip4_addr_netmask_valid)
474+
{
475+
u8_t ok;
476+
LWIP_UNUSED_ARG(_i);
477+
478+
ok = ip4_addr_netmask_valid(PP_HTONL(0x00000000UL));
479+
fail_unless(ok == 0);
480+
481+
ok = ip4_addr_netmask_valid(PP_HTONL(0xffffffffUL));
482+
fail_unless(ok == 1);
483+
484+
ok = ip4_addr_netmask_valid(PP_HTONL(0x80000000UL));
485+
fail_unless(ok == 1);
486+
487+
ok = ip4_addr_netmask_valid(PP_HTONL(0x80000001UL));
488+
fail_unless(ok == 0);
270489
}
271490
END_TEST
272491

@@ -328,7 +547,10 @@ ip4_suite(void)
328547
TESTFUNC(test_ip4_frag),
329548
TESTFUNC(test_ip4_reass),
330549
TESTFUNC(test_127_0_0_1),
550+
TESTFUNC(test_ipaddr_addr),
331551
TESTFUNC(test_ip4addr_aton),
552+
TESTFUNC(test_ip4addr_ntoa),
553+
TESTFUNC(test_ip4_addr_netmask_valid),
332554
TESTFUNC(test_ip4_icmp_replylen_short),
333555
TESTFUNC(test_ip4_icmp_replylen_first_8),
334556
};

0 commit comments

Comments
 (0)