diff options
| author | Daniil Baturin <daniil@baturin.org> | 2013-05-27 02:37:44 -0700 |
|---|---|---|
| committer | Daniil Baturin <daniil@baturin.org> | 2013-05-27 02:37:44 -0700 |
| commit | 038dcd982d442d894c467bf0d91cdaf421e87185 (patch) | |
| tree | a5bf6eb9cf498dc7088819682bd6fad5aa0a0170 /tests | |
| parent | 069e78d6788b0e10272747f5d773ce9a167e90bc (diff) | |
| download | ipaddrcheck-038dcd982d442d894c467bf0d91cdaf421e87185.tar.gz ipaddrcheck-038dcd982d442d894c467bf0d91cdaf421e87185.zip | |
Again, multiple enhancements.
* IPv6 feature set nearly complete.
* Test suite expanded to cover all but a few functions.
* Source files renamed according to the new project name,
.h is now .h, implementations are moved to .c
* Something else.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/Makefile.am | 2 | ||||
| -rw-r--r-- | tests/check_ipaddrcheck.c | 85 |
2 files changed, 85 insertions, 2 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 0d76cc4..9b04635 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,5 +1,5 @@ TESTS = check_ipaddrcheck check_PROGRAMS = check_ipaddrcheck -check_ipaddrcheck_SOURCES = check_ipaddrcheck.c $(top_builddir)/src/iptest.h +check_ipaddrcheck_SOURCES = check_ipaddrcheck.c ../src/ipaddrcheck_functions.c check_ipaddrcheck_CFLAGS = @CHECK_CFLAGS@ check_ipaddrcheck_LDADD = -lcidr -lpcre @CHECK_LIBS@ diff --git a/tests/check_ipaddrcheck.c b/tests/check_ipaddrcheck.c index 246d445..60a64f9 100644 --- a/tests/check_ipaddrcheck.c +++ b/tests/check_ipaddrcheck.c @@ -1,5 +1,5 @@ #include <check.h> -#include "../src/iptest.h" +#include "../src/ipaddrcheck_functions.h" START_TEST (test_has_mask) { @@ -176,6 +176,84 @@ START_TEST (test_is_ipv4_rfc1918) } END_TEST +START_TEST (test_is_ipv6) +{ + char* good_address_str = "2001:db8:1fe::49"; + CIDR* good_address = cidr_from_str(good_address_str); + ck_assert_int_eq(is_ipv6(good_address), RESULT_SUCCESS); + cidr_free(good_address); + + char* bad_address_str = "192.0.2.44"; + CIDR* bad_address = cidr_from_str(bad_address_str); + ck_assert_int_eq(is_ipv6(bad_address), RESULT_FAILURE); + cidr_free(bad_address); + +} +END_TEST + +START_TEST (test_is_ipv6_host) +{ + char* good_address_str_no_mask = "2001:db8:a::1"; + CIDR* good_address = cidr_from_str(good_address_str_no_mask); + ck_assert_int_eq(is_ipv6_host(good_address), RESULT_SUCCESS); + cidr_free(good_address); + + char* good_address_str_cidr = "2001:db8:b::100/64"; + CIDR* good_address_cidr = cidr_from_str(good_address_str_cidr); + ck_assert_int_eq(is_ipv6_host(good_address_cidr), RESULT_SUCCESS); + cidr_free(good_address_cidr); + + char* bad_address_str = "2001:db8:f::/48"; + CIDR* bad_address = cidr_from_str(bad_address_str); + ck_assert_int_eq(is_ipv6_host(bad_address), RESULT_FAILURE); + cidr_free(bad_address); +} +END_TEST + +START_TEST (test_is_ipv6_net) +{ + char* good_address_str = "2001:db8::/32"; + CIDR* good_address = cidr_from_str(good_address_str); + ck_assert_int_eq(is_ipv6_net(good_address), RESULT_SUCCESS); + cidr_free(good_address); + + char* bad_address_str = "2001:db8:34::1/64"; + CIDR* bad_address = cidr_from_str(bad_address_str); + ck_assert_int_eq(is_ipv6_net(bad_address), RESULT_FAILURE); + cidr_free(bad_address); +} +END_TEST + +START_TEST (test_is_ipv6_multicast) +{ + char* good_address_str = "ff02::6"; + CIDR* good_address = cidr_from_str(good_address_str); + ck_assert_int_eq(is_ipv6_multicast(good_address), RESULT_SUCCESS); + cidr_free(good_address); + + char* bad_address_str = "2001:db8::1"; + CIDR* bad_address = cidr_from_str(bad_address_str); + ck_assert_int_eq(is_ipv6_multicast(bad_address), RESULT_FAILURE); + cidr_free(bad_address); +} +END_TEST + +START_TEST (test_is_ipv6_link_local) +{ + CIDR* address = NULL; + + char* good_address_str = "fe80::5ab0:35ff:fef2:9365"; + address = cidr_from_str(good_address_str); + ck_assert_int_eq(is_ipv6_link_local(address), RESULT_SUCCESS); + cidr_free(address); + + char* bad_address_str = "2001:db8::2"; + address = cidr_from_str(bad_address_str); + ck_assert_int_eq(is_ipv6_link_local(address), RESULT_FAILURE); + cidr_free(address); +} +END_TEST + Suite *ipaddrcheck_suite(void) { @@ -194,6 +272,11 @@ Suite *ipaddrcheck_suite(void) tcase_add_test(tc_core, test_is_ipv4_loopback); tcase_add_test(tc_core, test_is_ipv4_link_local); tcase_add_test(tc_core, test_is_ipv4_rfc1918); + tcase_add_test(tc_core, test_is_ipv6); + tcase_add_test(tc_core, test_is_ipv6_host); + tcase_add_test(tc_core, test_is_ipv6_net); + tcase_add_test(tc_core, test_is_ipv6_multicast); + tcase_add_test(tc_core, test_is_ipv6_link_local); suite_add_tcase(s, tc_core); |
