X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FSocket%2FProtocols%2FINet%2FINet6Address.test.cc;h=52b1289c4856004507eefe1239a5ec5af6586c79;hb=61b2e2ea5cb50df90931acf3fcd840493ba762a9;hp=337feb124307aca9e42b720042919c3bcc478d64;hpb=9cb871b939efe93e35dd96808d25089399acfc46;p=senf.git diff --git a/senf/Socket/Protocols/INet/INet6Address.test.cc b/senf/Socket/Protocols/INet/INet6Address.test.cc index 337feb1..52b1289 100644 --- a/senf/Socket/Protocols/INet/INet6Address.test.cc +++ b/senf/Socket/Protocols/INet/INet6Address.test.cc @@ -30,6 +30,8 @@ #include "INet6Address.hh" #include #include +#include +#include #include #include @@ -79,12 +81,12 @@ SENF_AUTO_UNIT_TEST(inet6Address) BOOST_CHECK_EQUAL( addr3, INet6Address::from_string("1200::21") ); BOOST_CHECK_EQUAL( INet6Address::from_inet4address(INet4Address(0x01020304)), INet6Address::from_string("::ffff:1.2.3.4") ); + BOOST_CHECK( INet6Address::from_inet4address(INet4Address(0x01020304)).inet4Mapped()); BOOST_CHECK_THROW( INet6Address::from_string("1.2.3.4"), UnknownHostnameException ); BOOST_CHECK_EQUAL( INet6Address::from_string("1.2.3.4", INet6Address::ResolveINet4), INet6Address::from_string("::ffff:1.2.3.4") ); } - { INet6Address addr (INet6Address::from_string("2001:dead:beef::1002:3004")); BOOST_CHECK_EQUAL( addr.network(), senf::INet6Network( @@ -132,7 +134,6 @@ SENF_AUTO_UNIT_TEST(inet6Address) BOOST_CHECK( INet6Address::Loopback ); BOOST_CHECK( ! INet6Address::None ); } - { std::stringstream str; INet6Address addr; @@ -154,7 +155,6 @@ SENF_AUTO_UNIT_TEST(inet6Address) BOOST_CHECK( ! str.fail()); BOOST_CHECK_EQUAL(addr, INet6Address::from_string("2001:dead:beef::1002:3004")); } - { INet6Address addr; addr.network(0x2000010203040506ull); @@ -162,6 +162,15 @@ SENF_AUTO_UNIT_TEST(inet6Address) addr.id(1u); BOOST_CHECK_EQUAL( addr, INet6Address(0x2000u,0x0102u,0x0304u,0x0506u,0u,0u,0u,1u) ); } + { + using senf::MACAddress; + BOOST_CHECK_EQUAL( + INet6Address::from_mac( MACAddress::from_string("00-0C-29-C2-52-FF")), + INet6Address::from_string("fe80::20c:29ff:fec2:52ff") ); + BOOST_CHECK_EQUAL( + INet6Address::from_eui64( senf::EUI64::from_mac( MACAddress::from_string("a4:ba:db:fd:b8:76"))), + INet6Address::from_string("fe80::a6ba:dbff:fefd:b876") ); + } } SENF_AUTO_UNIT_TEST(inet6Network) @@ -196,12 +205,28 @@ SENF_AUTO_UNIT_TEST(inet6Network) BOOST_CHECK_THROW( INet6Network(""), AddressSyntaxException ); BOOST_CHECK_THROW( INet6Network("2001:db8:1234::/beef"), AddressSyntaxException ); + + { + std::stringstream str; + INet6Network net; + str >> net; + BOOST_CHECK( str.fail()); + } + { + std::stringstream str; + INet6Network net ("2001:db8:1230::/44"); + str << net; + BOOST_CHECK_EQUAL( str.str(), "2001:db8:1230::/44"); + str >> net; + BOOST_CHECK( ! str.fail()); + BOOST_CHECK_EQUAL(net, INet6Network("2001:db8:1230::/44")); + } } ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ - + // Local Variables: // mode: c++ // fill-column: 100