summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2013-05-27 02:37:44 -0700
committerDaniil Baturin <daniil@baturin.org>2013-05-27 02:37:44 -0700
commit038dcd982d442d894c467bf0d91cdaf421e87185 (patch)
treea5bf6eb9cf498dc7088819682bd6fad5aa0a0170 /tests
parent069e78d6788b0e10272747f5d773ce9a167e90bc (diff)
downloadipaddrcheck-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.am2
-rw-r--r--tests/check_ipaddrcheck.c85
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);