summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2024-01-04 13:38:37 -0500
committerDaniil Baturin <daniil@vyos.io>2024-01-04 13:38:37 -0500
commit23e0eda853a9bfa42a2fa0d50b31eea874a01a9c (patch)
treeba5e579ed670d0275fea996b0284b3a74da78f28 /tests
parent346aedbcd2257512208195bb165cc857e2907922 (diff)
downloadipaddrcheck-23e0eda853a9bfa42a2fa0d50b31eea874a01a9c.tar.gz
ipaddrcheck-23e0eda853a9bfa42a2fa0d50b31eea874a01a9c.zip
Add --range-prefix-length option
to require the range boundaries to lie within the same subnet of a given size
Diffstat (limited to 'tests')
-rw-r--r--tests/check_ipaddrcheck.c26
-rwxr-xr-xtests/integration_tests.sh6
2 files changed, 26 insertions, 6 deletions
diff --git a/tests/check_ipaddrcheck.c b/tests/check_ipaddrcheck.c
index 3b260c2..ebae1e1 100644
--- a/tests/check_ipaddrcheck.c
+++ b/tests/check_ipaddrcheck.c
@@ -405,17 +405,31 @@ END_TEST
START_TEST (test_is_ipv4_range)
{
- ck_assert_int_eq(is_ipv4_range("192.0.2.0-192.0.2.10", 0), RESULT_SUCCESS);
- ck_assert_int_eq(is_ipv4_range("192.0.2.-", 0), RESULT_FAILURE);
- ck_assert_int_eq(is_ipv4_range("192.0.2.99-192.0.2.11", 0), RESULT_FAILURE);
+ ck_assert_int_eq(is_ipv4_range("192.0.2.0-192.0.2.10", 0, 1), RESULT_SUCCESS);
+ ck_assert_int_eq(is_ipv4_range("192.0.2.-", 0, 1), RESULT_FAILURE);
+ ck_assert_int_eq(is_ipv4_range("192.0.2.99-192.0.2.11", 0, 1), RESULT_FAILURE);
+}
+END_TEST
+
+START_TEST (test_is_ipv4_range_prefix)
+{
+ ck_assert_int_eq(is_ipv4_range("192.0.2.0-192.0.2.10", 24, 1), RESULT_SUCCESS);
+ ck_assert_int_eq(is_ipv4_range("10.0.1.1-10.0.2.1", 24, 1), RESULT_FAILURE);
}
END_TEST
START_TEST (test_is_ipv6_range)
{
- ck_assert_int_eq(is_ipv6_range("2001:db8::1-2001:db8::20", 0), RESULT_SUCCESS);
- ck_assert_int_eq(is_ipv6_range("2001:-", 0), RESULT_FAILURE);
- ck_assert_int_eq(is_ipv6_range("2001:db8::99-2001:db8:1", 0), RESULT_FAILURE);
+ ck_assert_int_eq(is_ipv6_range("2001:db8::1-2001:db8::20", 0, 1), RESULT_SUCCESS);
+ ck_assert_int_eq(is_ipv6_range("2001:-", 0, 1), RESULT_FAILURE);
+ ck_assert_int_eq(is_ipv6_range("2001:db8::99-2001:db8:1", 0, 1), RESULT_FAILURE);
+}
+END_TEST
+
+START_TEST (test_is_ipv6_range_prefix)
+{
+ ck_assert_int_eq(is_ipv6_range("2001:db8::1-2001:db8::20", 64, 1), RESULT_SUCCESS);
+ ck_assert_int_eq(is_ipv6_range("2001:db8:aaaa::1-2001:db8:bbbb::1", 64, 1), RESULT_FAILURE);
}
END_TEST
diff --git a/tests/integration_tests.sh b/tests/integration_tests.sh
index 8264960..3a1e4ea 100755
--- a/tests/integration_tests.sh
+++ b/tests/integration_tests.sh
@@ -284,6 +284,9 @@ do
assert_raises "$IPADDRCHECK --is-ipv4-range $range" 1
done
+assert_raises "$IPADDRCHECK --range-prefix-length 24 --is-ipv4-range 10.0.0.1-10.0.0.10" 0
+assert_raises "$IPADDRCHECK --range-prefix-length 29 --is-ipv4-range 10.0.0.1-10.0.0.10" 1
+
# --is-ipv6-range
for range in \
${ipv6_range_positive[*]}
@@ -297,4 +300,7 @@ do
assert_raises "$IPADDRCHECK --is-ipv6-range $range" 1
done
+assert_raises "$IPADDRCHECK --range-prefix-length 64 --is-ipv6-range 2001:db8::1-2001:db8::100" 0
+assert_raises "$IPADDRCHECK --range-prefix-length 64 --is-ipv6-range 2001:db8:aaaa::1-2001:db8:bbbb::1" 1
+
assert_end ipaddrcheck_integration