]>
Commit | Line | Data |
---|---|---|
7156682c | 1 | #define BOOST_TEST_DYN_LINK |
2 | #define BOOST_TEST_NO_MAIN | |
3 | #include <boost/test/unit_test.hpp> | |
4 | #include "iputils.hh" | |
5 | ||
6 | using namespace boost; | |
7 | ||
8 | BOOST_AUTO_TEST_SUITE(iputils_hh) | |
9 | ||
10 | BOOST_AUTO_TEST_CASE(test_ComboAddress) { | |
11 | ComboAddress local("127.0.0.1", 53); | |
12 | BOOST_CHECK(local==local); | |
13 | BOOST_CHECK_EQUAL(local.sin4.sin_family, AF_INET); | |
14 | BOOST_CHECK_EQUAL(local.sin4.sin_port, htons(53)); | |
15 | BOOST_CHECK_EQUAL(local.sin4.sin_addr.s_addr, htonl(0x7f000001UL)); | |
16 | ||
17 | ComboAddress remote("130.161.33.15", 53); | |
18 | BOOST_CHECK(!(local == remote)); | |
75e7e2a0 | 19 | BOOST_CHECK_EQUAL(remote.sin4.sin_port, htons(53)); |
20 | ||
21 | ComboAddress withport("213.244.168.210:53"); | |
22 | BOOST_CHECK_EQUAL(withport.sin4.sin_port, htons(53)); | |
23 | ||
24 | ComboAddress withportO("213.244.168.210:53", 5300); | |
25 | BOOST_CHECK_EQUAL(withportO.sin4.sin_port, htons(53)); | |
26 | ||
27 | withport = ComboAddress("[::]:53"); | |
28 | BOOST_CHECK_EQUAL(withport.sin4.sin_port, htons(53)); | |
29 | ||
30 | withport = ComboAddress("[::]:5300", 53); | |
31 | BOOST_CHECK_EQUAL(withport.sin4.sin_port, htons(5300)); | |
7156682c | 32 | } |
33 | ||
60af67b8 | 34 | BOOST_AUTO_TEST_CASE(test_Netmask) { |
35 | ComboAddress local("127.0.0.1", 53); | |
36 | ComboAddress remote("130.161.252.29", 53); | |
37 | ||
38 | Netmask nm("127.0.0.1/24"); | |
39 | BOOST_CHECK(nm.match(local)); | |
40 | BOOST_CHECK(!nm.match(remote)); | |
41 | ||
42 | Netmask nm6("fe80::92fb:a6ff:fe4a:51da/64"); | |
43 | BOOST_CHECK(nm6.match("fe80::92fb:a6ff:fe4a:51db")); | |
44 | BOOST_CHECK(!nm6.match("fe81::92fb:a6ff:fe4a:51db")); | |
45 | ||
46 | Netmask nmp("130.161.252.29/32"); | |
47 | BOOST_CHECK(nmp.match(remote)); | |
48 | ||
49 | Netmask nmp6("fe80::92fb:a6ff:fe4a:51da/128"); | |
50 | BOOST_CHECK(nmp6.match("fe80::92fb:a6ff:fe4a:51da")); | |
51 | BOOST_CHECK(!nmp6.match("fe81::92fb:a6ff:fe4a:51db")); | |
52 | ||
53 | Netmask all("0.0.0.0/0"); | |
54 | BOOST_CHECK(all.match(local) && all.match(remote)); | |
55 | ||
56 | Netmask all6("::/0"); | |
57 | BOOST_CHECK(all6.match("::1") && all6.match("fe80::92fb:a6ff:fe4a:51da")); | |
58 | } | |
59 | ||
60 | BOOST_AUTO_TEST_CASE(test_NetmaskGroup) { | |
61 | NetmaskGroup ng; | |
68b011bd KM |
62 | ng.addMask("10.0.1.0"); |
63 | BOOST_CHECK(ng.match(ComboAddress("10.0.1.0"))); | |
64 | ng.toMasks("127.0.0.0/8, 10.0.0.0/24"); | |
60af67b8 | 65 | BOOST_CHECK(ng.match(ComboAddress("127.0.0.1"))); |
66 | BOOST_CHECK(ng.match(ComboAddress("10.0.0.3"))); | |
68b011bd | 67 | BOOST_CHECK(ng.match(ComboAddress("10.0.1.0"))); |
60af67b8 | 68 | BOOST_CHECK(!ng.match(ComboAddress("128.1.2.3"))); |
68b011bd | 69 | BOOST_CHECK(!ng.match(ComboAddress("10.0.1.1"))); |
60af67b8 | 70 | BOOST_CHECK(!ng.match(ComboAddress("::1"))); |
71 | ng.addMask("::1"); | |
72 | BOOST_CHECK(ng.match(ComboAddress("::1"))); | |
73 | BOOST_CHECK(!ng.match(ComboAddress("::2"))); | |
74 | ng.addMask("fe80::/16"); | |
75 | BOOST_CHECK(ng.match(ComboAddress("fe80::1"))); | |
76 | BOOST_CHECK(!ng.match(ComboAddress("fe81::1"))); | |
77 | } | |
78 | ||
79 | ||
7156682c | 80 | BOOST_AUTO_TEST_SUITE_END() |