]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/test-iputils_hh.cc
Merge pull request #2180 from rubenk/sanitizers
[thirdparty/pdns.git] / pdns / test-iputils_hh.cc
CommitLineData
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
6using namespace boost;
7
8BOOST_AUTO_TEST_SUITE(iputils_hh)
9
10BOOST_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 34BOOST_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
60BOOST_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 80BOOST_AUTO_TEST_SUITE_END()