1 #include <boost/test/unit_test.hpp>
10 BOOST_AUTO_TEST_SUITE(netbase_tests)
18 BOOST_CHECK(
CNetAddr(
"FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").GetNetwork() ==
NET_TOR);
23 BOOST_CHECK(
CNetAddr(
"127.0.0.1").IsIPv4());
24 BOOST_CHECK(
CNetAddr(
"::FFFF:192.168.1.1").IsIPv4());
25 BOOST_CHECK(
CNetAddr(
"::1").IsIPv6());
26 BOOST_CHECK(
CNetAddr(
"10.0.0.1").IsRFC1918());
27 BOOST_CHECK(
CNetAddr(
"192.168.1.1").IsRFC1918());
28 BOOST_CHECK(
CNetAddr(
"172.31.255.255").IsRFC1918());
29 BOOST_CHECK(
CNetAddr(
"2001:0DB8::").IsRFC3849());
30 BOOST_CHECK(
CNetAddr(
"169.254.1.1").IsRFC3927());
31 BOOST_CHECK(
CNetAddr(
"2002::1").IsRFC3964());
32 BOOST_CHECK(
CNetAddr(
"FC00::").IsRFC4193());
33 BOOST_CHECK(
CNetAddr(
"2001::2").IsRFC4380());
34 BOOST_CHECK(
CNetAddr(
"2001:10::").IsRFC4843());
35 BOOST_CHECK(
CNetAddr(
"FE80::").IsRFC4862());
36 BOOST_CHECK(
CNetAddr(
"64:FF9B::").IsRFC6052());
37 BOOST_CHECK(
CNetAddr(
"FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").IsTor());
40 BOOST_CHECK(
CNetAddr(
"8.8.8.8").IsRoutable());
41 BOOST_CHECK(
CNetAddr(
"2001::1").IsRoutable());
42 BOOST_CHECK(
CNetAddr(
"127.0.0.1").IsValid());
45 bool static TestSplitHost(
string test,
string host,
int port)
50 return hostOut == host && port == portOut;
55 BOOST_CHECK(TestSplitHost(
"www.bitcoin.org",
"www.bitcoin.org", -1));
56 BOOST_CHECK(TestSplitHost(
"[www.bitcoin.org]",
"www.bitcoin.org", -1));
57 BOOST_CHECK(TestSplitHost(
"www.bitcoin.org:80",
"www.bitcoin.org", 80));
58 BOOST_CHECK(TestSplitHost(
"[www.bitcoin.org]:80",
"www.bitcoin.org", 80));
59 BOOST_CHECK(TestSplitHost(
"127.0.0.1",
"127.0.0.1", -1));
60 BOOST_CHECK(TestSplitHost(
"127.0.0.1:9336",
"127.0.0.1", 9336));
61 BOOST_CHECK(TestSplitHost(
"[127.0.0.1]",
"127.0.0.1", -1));
62 BOOST_CHECK(TestSplitHost(
"[127.0.0.1]:9336",
"127.0.0.1", 9336));
63 BOOST_CHECK(TestSplitHost(
"::ffff:127.0.0.1",
"::ffff:127.0.0.1", -1));
64 BOOST_CHECK(TestSplitHost(
"[::ffff:127.0.0.1]:9336",
"::ffff:127.0.0.1", 9336));
65 BOOST_CHECK(TestSplitHost(
"[::]:9336",
"::", 9336));
66 BOOST_CHECK(TestSplitHost(
"::9336",
"::9336", -1));
67 BOOST_CHECK(TestSplitHost(
":9336",
"", 9336));
68 BOOST_CHECK(TestSplitHost(
"[]:9336",
"", 9336));
69 BOOST_CHECK(TestSplitHost(
"",
"", -1));
72 bool static TestParse(
string src,
string canon)
82 BOOST_CHECK(TestParse(
"127.0.0.1",
"127.0.0.1:65535"));
83 BOOST_CHECK(TestParse(
"127.0.0.1:9336",
"127.0.0.1:9336"));
84 BOOST_CHECK(TestParse(
"::ffff:127.0.0.1",
"127.0.0.1:65535"));
85 BOOST_CHECK(TestParse(
"::",
"[::]:65535"));
86 BOOST_CHECK(TestParse(
"[::]:9336",
"[::]:9336"));
87 BOOST_CHECK(TestParse(
"[127.0.0.1]",
"127.0.0.1:65535"));
88 BOOST_CHECK(TestParse(
":::",
""));
94 CNetAddr addr1(
"5wyqrzbvrdsumnok.onion");
95 CNetAddr addr2(
"FD87:D87E:EB43:edb1:8e4:3588:e546:35ca");
96 BOOST_CHECK(addr1 == addr2);
97 BOOST_CHECK(addr1.
IsTor());
98 BOOST_CHECK(addr1.
ToStringIP() ==
"5wyqrzbvrdsumnok.onion");
102 BOOST_AUTO_TEST_SUITE_END()
std::string ToStringIP() const
bool LookupNumeric(const char *pszName, CService &addr, int portDefault)
A combination of a network address (CNetAddr) and a (TCP) port.
std::string ToString() const
void SplitHostPort(std::string in, int &portOut, std::string &hostOut)
BOOST_AUTO_TEST_CASE(netbase_networks)
IP address (IPv6, or IPv4 using mapped IPv6 range (::FFFF:0:0/96))
bool IsLocal(const CService &addr)
check whether a given address is potentially local