X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FINet6Address.test.cc;h=253c2149c81b9c0e849e55a3b57324e64337ef25;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=22340c8138ec49c708cd269c1f7b19c87bf48dc0;hpb=2452ac2af5863afb6cfb74e6d2c6e35fc75d1f9a;p=senf.git diff --git a/Socket/Protocols/INet/INet6Address.test.cc b/Socket/Protocols/INet/INet6Address.test.cc index 22340c8..253c214 100644 --- a/Socket/Protocols/INet/INet6Address.test.cc +++ b/Socket/Protocols/INet/INet6Address.test.cc @@ -1,3 +1,5 @@ +// $Id$ +// // Copyright (C) 2007 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) @@ -136,6 +138,32 @@ BOOST_AUTO_UNIT_TEST(inet6Address) } } +BOOST_AUTO_UNIT_TEST(inet6Network) +{ + senf::INet6Network net (senf::INet6Address(0xFF14u,0x1234u),32u); + BOOST_CHECK_EQUAL( boost::lexical_cast(net.address()), "ff14:1234::"); + BOOST_CHECK_EQUAL( net.prefix_len(), 32u ); + BOOST_CHECK( net ); + BOOST_CHECK( ! senf::INet6Network() ); + + senf::INet6Network net2 ("2001:db8:1234::/44"); + BOOST_CHECK_EQUAL( net2.address(), senf::INet6Address::from_string("2001:db8:1230::") ); + BOOST_CHECK_EQUAL( net2.prefix_len(), 44u ); + + BOOST_CHECK( net != net2 ); + BOOST_CHECK( net.match(senf::INet6Address::from_string("ff14:1234::1")) ); + BOOST_CHECK( ! net2.match(senf::INet6Address::from_string("ff13:1234::1")) ); + BOOST_CHECK( ! net.match(net2) ); + BOOST_CHECK( net2.match(senf::INet6Network("2001:db8:1234::/48")) ); + BOOST_CHECK( ! net2.match(senf::INet6Network("2001:db8:1234::/32")) ); + + BOOST_CHECK_EQUAL( boost::lexical_cast(net2), "2001:db8:1230::/44" ); + + BOOST_CHECK_EQUAL( net2.host(0x1234u), senf::INet6Address::from_string("2001:db8:1230::1234") ); + BOOST_CHECK_EQUAL( boost::lexical_cast(net2.subnet(2u,48u)), + "2001:db8:1232::/48" ); +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_