]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
filter/test.conf: tests for net_addr net_tests
authorKaterina Kubecova <katerina.kubecova@nic.cz>
Fri, 19 Jan 2024 10:54:25 +0000 (11:54 +0100)
committerKaterina Kubecova <katerina.kubecova@nic.cz>
Fri, 19 Jan 2024 10:54:25 +0000 (11:54 +0100)
filter/test.conf

index 22b4984a11235b617fe498116fca229b39694d3d..5f6af6217c1ee3cc9c837b3a0a4b9ef8b8dea374 100644 (file)
@@ -506,6 +506,9 @@ prefix px;
 
        bt_assert(1.2.3.4 ~ 1.0.0.0/8);
        bt_assert(1.0.0.0/8 ~ 1.0.0.0/8);
+
+       bt_assert(px.len = 18);
+       bt_assert(px.ip = 1.2.0.0);
 }
 
 bt_test_suite(t_prefix, "Testing prefixes");
@@ -642,6 +645,8 @@ function t_prefix6()
        bt_assert(1020:3040:5060::/48 ~ 1020:3040::/32);
        bt_assert(1020:3040::/31 !~ 1020:3040::/32);
        bt_assert(1020:3041::/33 !~ 1020:3040::/32);
+       bt_assert(px.len = 18);
+       bt_assert(px.ip = 1020::);
 }
 
 bt_test_suite(t_prefix6, "Testing prefix IPv6");
@@ -716,8 +721,43 @@ bt_test_suite(t_prefix6_set, "Testing prefix IPv6 sets");
 
 
 
+function t_net_vpn()
+{
+       prefix p;
+       p = 100:200 10.0.1.0/24;
+       bt_assert(p.type = NET_VPN4);
+       bt_assert(p.len = 24);
+       bt_assert(p.ip = 10.0.1.0);
+       bt_assert(p.rd = 100:200);
+       bt_assert(format(p) = "100:200 10.0.1.0/24");
+
+       prefix q;
+       q = 1012:2024 fe80:386c::/32;
+       bt_assert(q.type = NET_VPN6);
+       bt_assert(q.len = 32);
+       bt_assert(q.ip = fe80:386c::);
+       bt_assert(q.rd = 1012:2024);
+       bt_assert(format(q) = "1012:2024 fe80:386c::/32");
+}
+
+bt_test_suite(t_net_vpn, "Testing vpn networks");
+
+function t_net_saddr()
+{
+       prefix p;
+       p = fe80:386c::/32 from 2001:db8:1:13::/64;
+       bt_assert(p.type = NET_IP6_SADR);
+       bt_assert(p.len = 32);
+       bt_assert(p.ip = fe80:386c::);
+       bt_assert(format(p) = "fe80:386c::/32 from 2001:db8:1:13::/64");
+       bt_assert(p.src = 2001:db8:1:13::/64);
+       bt_assert(p.dst = fe80:386c::/32);
+}
+
+bt_test_suite(t_net_saddr, "Testing saddr networks");
 
-function t_flowspec()
+
+function t_net_flowspec()
 prefix p;
 {
        p = flow4 { dst 10.0.0.0/8; };
@@ -737,9 +777,22 @@ prefix p;
        bt_assert(format(flow6 { fragment is_fragment || !first_fragment; }) = "flow6 { fragment is_fragment || !first_fragment; }");
        bt_assert(format(flow6 { label 1000..2000; }) = "flow6 { label 1000..2000; }");
        bt_assert(format(flow6 { }) = "flow6 { }");
+
+       bt_assert(p.type = NET_FLOW4);
+       bt_assert(p.len = 8);
+       bt_assert(p.ip = 10.0.0.0);
+       bt_assert(p.src = 0.0.0.0/0);
+       bt_assert(p.dst = 10.0.0.0/8);
+
+       p = flow6 { dst ::1/128; };
+       bt_assert(p.type = NET_FLOW6);
+       bt_assert(p.len = 128);
+       bt_assert(p.ip = ::1);
+       bt_assert(p.src = ::/0);
+       bt_assert(p.dst = ::1/128);
 }
 
-bt_test_suite(t_flowspec, "Testing flowspec routes");
+bt_test_suite(t_net_flowspec, "Testing flowspec routes");
 
 
 
@@ -2057,11 +2110,15 @@ prefix pfx;
        bt_assert(pfx.len = 16);
        bt_assert(pfx.maxlen = 24);
        bt_assert(pfx.asn = 1234);
+       bt_assert(pfx.ip = 12.13.0.0);
+       bt_assert(format(pfx) = "12.13.0.0/16-24 AS1234");
 
        pfx = 1000::/8 max 32 as 1234;
        bt_assert(pfx.len = 8);
        bt_assert(pfx.maxlen = 32);
        bt_assert(pfx.asn = 1234);
+       bt_assert(pfx.ip = 1000::);
+       bt_assert(format(pfx) = "1000::/8-32 AS1234");
 }
 
 bt_test_suite(t_roa_check, "Testing ROA");