case i {
4200000000: bt_assert(true);
+ (2+2): bt_assert(false);
else: bt_assert(false);
}
-
case four {
+ 4200000000: bt_assert(false);
(2+2): bt_assert(true);
else: bt_assert(false);
}
+ case 5 {
+ 4200000000: bt_assert(false);
+ (2+2): bt_assert(false);
+ else: bt_assert(true);
+ }
aux_t_int(1, 2);
aux_t_int(1, 3);
bt_assert(format([ 1, 2, 1, 1, 1, 3, 4, 1, 1, 1, 5 ]) = "[1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5]");
bt_assert(format([]) = "[]");
+
+ case 3 {
+ (one), (2+1), (6-one), (17+2), 8, 11, 15, 17: bt_assert(true);
+ 1, 4..10, 20: bt_assert(false);
+ else: bt_assert(false);
+ }
+ case 7 {
+ (one), (2+1), (6-one), (17+2), 8, 11, 15, 17: bt_assert(false);
+ 1, 4..10, 20: bt_assert(true);
+ else: bt_assert(false);
+ }
+ case 12 {
+ (one), (2+1), (6-one), (17+2), 8, 11, 15, 17: bt_assert(false);
+ 1, 4..10, 20: bt_assert(false);
+ else: bt_assert(true);
+ }
}
bt_test_suite(t_int_set, "Testing sets of integers");
bt_assert((50150,50050) !~ ps);
bt_assert((10,9) !~ ps);
bt_assert((65535,11) !~ ps);
+
+ case (6,4) {
+ (1,(one+one)), (3,4)..(4,8), (5,*), (6,3..6): bt_assert(true);
+ (20..150, 200..300), (50100..50200, 1000..50000), (*, 5+5): bt_assert(false);
+ else: bt_assert(false);
+ }
+ case (4,10) {
+ (1,(one+one)), (3,4)..(4,8), (5,*), (6,3..6): bt_assert(false);
+ (20..150, 200..300), (50100..50200, 1000..50000), (*, 5+5): bt_assert(true);
+ else: bt_assert(false);
+ }
+ case (1,5) {
+ (1,(one+one)), (3,4)..(4,8), (5,*), (6,3..6): bt_assert(false);
+ (20..150, 200..300), (50100..50200, 1000..50000), (*, 5+5): bt_assert(false);
+ else: bt_assert(true);
+ }
}
bt_test_suite(t_pair_set, "Testing sets of pairs");
bt_assert(qq ~ [1.2.3.4, 5.6.7.8]);
bt_assert(qq !~ [1.2.1.1, 1.2.3.5]);
bt_assert(qq !~ []);
+
+ case qq {
+ 1.2.3.4, 5.6.7.8: bt_assert(true);
+ 1.2.1.1, 1.2.3.5: bt_assert(false);
+ else: bt_assert(false);
+ }
+ case 1.2.1.1 {
+ 1.2.3.4, 5.6.7.8: bt_assert(false);
+ 1.2.1.1, 1.2.3.5: bt_assert(true);
+ else: bt_assert(false);
+ }
+ case 1.1.2.1 {
+ 1.2.3.4, 5.6.7.8: bt_assert(false);
+ 1.2.1.1, 1.2.3.5: bt_assert(false);
+ else: bt_assert(true);
+ }
}
bt_test_suite(t_quad_set, "Testing sets of quads");
bt_assert(1.2.3.4 !~ [ 1.2.3.3, 1.2.3.5 ]);
bt_assert(1.2.3.4 ~ [ 1.2.3.3..1.2.3.5 ]);
bt_assert(1.2.3.4 !~ []);
+
+ case 1.1.1.64 {
+ 1.1.1.0 .. 1.1.1.255 : bt_assert(true);
+ (ip1222): bt_assert(false);
+ else: bt_assert(false);
+ }
+ case 1.2.2.2 {
+ 1.1.1.0 .. 1.1.1.255 : bt_assert(false);
+ (ip1222): bt_assert(true);
+ else: bt_assert(false);
+ }
+ case onetwo {
+ 1.1.1.0 .. 1.1.1.255 : bt_assert(false);
+ (ip1222): bt_assert(false);
+ else: bt_assert(true);
+ }
+
+ case 1234:5678:: {
+ ::fffe:6:c0c:936d:88c7:35d3, 1234:5678:: : bt_assert(true);
+ 1:2:3:4:5:6:7:8, 10:20:30:40:50:60:70:80, 1090:20a0:30b0:40c0:50d0:60e0:70f0:8000 : bt_assert(false);
+ else: bt_assert(false);
+ }
+ case 10:20:30:40:50:60:70:80 {
+ ::fffe:6:c0c:936d:88c7:35d3, 1234:5678:: : bt_assert(false);
+ 1:2:3:4:5:6:7:8, 10:20:30:40:50:60:70:80, 1090:20a0:30b0:40c0:50d0:60e0:70f0:8000 : bt_assert(true);
+ else: bt_assert(false);
+ }
+ case 1:2:3:4:5:6:7:9 {
+ ::fffe:6:c0c:936d:88c7:35d3, 1234:5678:: : bt_assert(false);
+ 1:2:3:4:5:6:7:8, 10:20:30:40:50:60:70:80, 1090:20a0:30b0:40c0:50d0:60e0:70f0:8000 : bt_assert(false);
+ else: bt_assert(true);
+ }
+
}
bt_test_suite(t_ip_set, "Testing sets of ip address");
bt_assert(RTS_BGP !~ [RTS_STATIC, RTS_DEVICE]);
bt_assert(NET_IP6 ~ es);
bt_assert(NET_IP4 !~ es);
+
+ case NET_IP6 {
+ NET_IP6: bt_assert(true);
+ NET_VPN6: bt_assert(false);
+ else: bt_assert(false);
+ }
+ case RTS_DEVICE {
+ RTS_STATIC: bt_assert(false);
+ RTS_DEVICE: bt_assert(true);
+ else: bt_assert(false);
+ }
+ case NET_IP4 {
+ NET_IP6: bt_assert(false);
+ NET_VPN6: bt_assert(false);
+ else: bt_assert(true);
+ }
}
bt_test_suite(t_enum, "Testing enums");
bt_assert((ro, 12345, 10) !~ ecs);
bt_assert((rt, 12346, 0) !~ ecs);
bt_assert((ro, 0.1.134.160, 150) !~ ecs);
+
+ case (rt, 12345, 0) {
+ (rt, 123456, 20000), (rt, 12345, *): bt_assert(true);
+ (rt, ten, (one+onef(0))*10), (ro, 100000, 100..200): bt_assert(false);
+ else: bt_assert(false);
+ }
+ case (rt, 10, 20) {
+ (rt, 123456, 20000), (rt, 12345, *): bt_assert(false);
+ (rt, ten, (one+onef(0))*10), (ro, 100000, 100..200): bt_assert(true);
+ else: bt_assert(false);
+ }
+ case (rt, 123456, 100) {
+ (rt, 123456, 20000), (rt, 12345, *): bt_assert(false);
+ (rt, ten, (one+onef(0))*10), (ro, 100000, 100..200): bt_assert(false);
+ else: bt_assert(true);
+ }
}
bt_test_suite(t_ec_set, "Testing sets of extended communities");
bt_assert((50, 0, 0) ~ lls);
bt_assert((60, 60, 60) ~ lls);
bt_assert((70, 60, 60) !~ lls);
+
+ case (40, 40, 40) {
+ (10, 10, 10), (20, 20, 15..25), (30, 30, *), (40, 35..45, *), (50, *, *), (55..65, *, *): bt_assert(true);
+ (5, 10, 15), (10, 20, 30), (10, 15..25, *), (ten, *, *), (11, *, *): bt_assert(false);
+ else: bt_assert(false);
+ }
+ case (10, 20, 40) {
+ (10, 10, 10), (20, 20, 15..25), (30, 30, *), (40, 35..45, *), (50, *, *), (55..65, *, *): bt_assert(false);
+ (5, 10, 15), (10, 20, 30), (10, 15..25, *), (ten, *, *), (11, *, *): bt_assert(true);
+ else: bt_assert(false);
+ }
+ case (12, 50, 40) {
+ (10, 10, 10), (20, 20, 15..25), (30, 30, *), (40, 35..45, *), (50, *, *), (55..65, *, *): bt_assert(false);
+ (5, 10, 15), (10, 20, 30), (10, 15..25, *), (ten, *, *), (11, *, *): bt_assert(false);
+ else: bt_assert(true);
+ }
}
bt_test_suite(t_lclist_set, "Testing sets of large communities");
bt_assert(100000:200 ~ rds);
bt_assert(100010:150 !~ rds);
bt_assert(100010:150 !~ []);
+
+ case 100000:130 {
+ 10:20, 100000:100..100000:200: bt_assert(true);
+ 10:21, 100000:90, 100010:150: bt_assert(false);
+ else: bt_assert(false);
+ }
+ case 100000:90 {
+ 10:20, 100000:100..100000:200: bt_assert(false);
+ 10:21, 100000:90, 100010:150: bt_assert(true);
+ else: bt_assert(false);
+ }
+ case 100000:230 {
+ 10:20, 100000:100..100000:200: bt_assert(false);
+ 10:21, 100000:90, 100010:150: bt_assert(false);
+ else: bt_assert(true);
+ }
}
bt_test_suite(t_rd_set, "Testing sets of route distinguishers");