Changeset View
Changeset View
Standalone View
Standalone View
src/test/netbase_tests.cpp
Show First 20 Lines • Show All 126 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(onioncat_test) { | ||||
CNetAddr addr1(ResolveIP("5wyqrzbvrdsumnok.onion")); | CNetAddr addr1(ResolveIP("5wyqrzbvrdsumnok.onion")); | ||||
CNetAddr addr2(ResolveIP("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca")); | CNetAddr addr2(ResolveIP("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca")); | ||||
BOOST_CHECK(addr1 == addr2); | BOOST_CHECK(addr1 == addr2); | ||||
BOOST_CHECK(addr1.IsTor()); | BOOST_CHECK(addr1.IsTor()); | ||||
BOOST_CHECK(addr1.ToStringIP() == "5wyqrzbvrdsumnok.onion"); | BOOST_CHECK(addr1.ToStringIP() == "5wyqrzbvrdsumnok.onion"); | ||||
BOOST_CHECK(addr1.IsRoutable()); | BOOST_CHECK(addr1.IsRoutable()); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(embedded_test) { | |||||
CNetAddr addr1(ResolveIP("1.2.3.4")); | |||||
CNetAddr addr2(ResolveIP("::FFFF:0102:0304")); | |||||
BOOST_CHECK(addr2.IsIPv4()); | |||||
BOOST_CHECK_EQUAL(addr1.ToString(), addr2.ToString()); | |||||
} | |||||
BOOST_AUTO_TEST_CASE(subnet_test) { | BOOST_AUTO_TEST_CASE(subnet_test) { | ||||
BOOST_CHECK(ResolveSubNet("1.2.3.0/24") == | BOOST_CHECK(ResolveSubNet("1.2.3.0/24") == | ||||
ResolveSubNet("1.2.3.0/255.255.255.0")); | ResolveSubNet("1.2.3.0/255.255.255.0")); | ||||
BOOST_CHECK(ResolveSubNet("1.2.3.0/24") != | BOOST_CHECK(ResolveSubNet("1.2.3.0/24") != | ||||
ResolveSubNet("1.2.4.0/255.255.255.0")); | ResolveSubNet("1.2.4.0/255.255.255.0")); | ||||
BOOST_CHECK(ResolveSubNet("1.2.3.0/24").Match(ResolveIP("1.2.3.4"))); | BOOST_CHECK(ResolveSubNet("1.2.3.0/24").Match(ResolveIP("1.2.3.4"))); | ||||
BOOST_CHECK(!ResolveSubNet("1.2.2.0/24").Match(ResolveIP("1.2.3.4"))); | BOOST_CHECK(!ResolveSubNet("1.2.2.0/24").Match(ResolveIP("1.2.3.4"))); | ||||
BOOST_CHECK(ResolveSubNet("1.2.3.4").Match(ResolveIP("1.2.3.4"))); | BOOST_CHECK(ResolveSubNet("1.2.3.4").Match(ResolveIP("1.2.3.4"))); | ||||
Show All 10 Lines | BOOST_CHECK(ResolveSubNet("1:2:3:4:5:6:7:0/112") | ||||
.Match(ResolveIP("1:2:3:4:5:6:7:1234"))); | .Match(ResolveIP("1:2:3:4:5:6:7:1234"))); | ||||
BOOST_CHECK( | BOOST_CHECK( | ||||
ResolveSubNet("192.168.0.1/24").Match(ResolveIP("192.168.0.2"))); | ResolveSubNet("192.168.0.1/24").Match(ResolveIP("192.168.0.2"))); | ||||
BOOST_CHECK( | BOOST_CHECK( | ||||
ResolveSubNet("192.168.0.20/29").Match(ResolveIP("192.168.0.18"))); | ResolveSubNet("192.168.0.20/29").Match(ResolveIP("192.168.0.18"))); | ||||
BOOST_CHECK(ResolveSubNet("1.2.2.1/24").Match(ResolveIP("1.2.2.4"))); | BOOST_CHECK(ResolveSubNet("1.2.2.1/24").Match(ResolveIP("1.2.2.4"))); | ||||
BOOST_CHECK(ResolveSubNet("1.2.2.110/31").Match(ResolveIP("1.2.2.111"))); | BOOST_CHECK(ResolveSubNet("1.2.2.110/31").Match(ResolveIP("1.2.2.111"))); | ||||
BOOST_CHECK(ResolveSubNet("1.2.2.20/26").Match(ResolveIP("1.2.2.63"))); | BOOST_CHECK(ResolveSubNet("1.2.2.20/26").Match(ResolveIP("1.2.2.63"))); | ||||
// All-Matching IPv6 Matches arbitrary IPv4 and IPv6 | // All-Matching IPv6 Matches arbitrary IPv6 | ||||
BOOST_CHECK(ResolveSubNet("::/0").Match(ResolveIP("1:2:3:4:5:6:7:1234"))); | BOOST_CHECK(ResolveSubNet("::/0").Match(ResolveIP("1:2:3:4:5:6:7:1234"))); | ||||
// But not `::` or `0.0.0.0` because they are considered invalid addresses | // But not `::` or `0.0.0.0` because they are considered invalid addresses | ||||
BOOST_CHECK(!ResolveSubNet("::/0").Match(ResolveIP("::"))); | BOOST_CHECK(!ResolveSubNet("::/0").Match(ResolveIP("::"))); | ||||
BOOST_CHECK(!ResolveSubNet("::/0").Match(ResolveIP("0.0.0.0"))); | BOOST_CHECK(!ResolveSubNet("::/0").Match(ResolveIP("0.0.0.0"))); | ||||
BOOST_CHECK(ResolveSubNet("::/0").Match(ResolveIP("1.2.3.4"))); | // Addresses from one network (IPv4) don't belong to subnets of another | ||||
// network (IPv6) | |||||
BOOST_CHECK(!ResolveSubNet("::/0").Match(ResolveIP("1.2.3.4"))); | |||||
// All-Matching IPv4 does not Match IPv6 | // All-Matching IPv4 does not Match IPv6 | ||||
BOOST_CHECK( | BOOST_CHECK( | ||||
!ResolveSubNet("0.0.0.0/0").Match(ResolveIP("1:2:3:4:5:6:7:1234"))); | !ResolveSubNet("0.0.0.0/0").Match(ResolveIP("1:2:3:4:5:6:7:1234"))); | ||||
// Invalid subnets Match nothing (not even invalid addresses) | // Invalid subnets Match nothing (not even invalid addresses) | ||||
BOOST_CHECK(!CSubNet().Match(ResolveIP("1.2.3.4"))); | BOOST_CHECK(!CSubNet().Match(ResolveIP("1.2.3.4"))); | ||||
BOOST_CHECK(!ResolveSubNet("").Match(ResolveIP("4.5.6.7"))); | BOOST_CHECK(!ResolveSubNet("").Match(ResolveIP("4.5.6.7"))); | ||||
BOOST_CHECK(!ResolveSubNet("bloop").Match(ResolveIP("0.0.0.0"))); | BOOST_CHECK(!ResolveSubNet("bloop").Match(ResolveIP("0.0.0.0"))); | ||||
BOOST_CHECK(!ResolveSubNet("bloop").Match(ResolveIP("hab"))); | BOOST_CHECK(!ResolveSubNet("bloop").Match(ResolveIP("hab"))); | ||||
▲ Show 20 Lines • Show All 331 Lines • Show Last 20 Lines |