X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FINet4Address.test.cc;h=aaf58f8e934f4faae7501d513f30b28929893f16;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=36e84f40fd1ede81b3d7a3a8eddfc4ce944ad963;hpb=ca133fb5d47ad2bd90d95e21626df59fdd78571a;p=senf.git diff --git a/Socket/Protocols/INet/INet4Address.test.cc b/Socket/Protocols/INet/INet4Address.test.cc index 36e84f4..aaf58f8 100644 --- a/Socket/Protocols/INet/INet4Address.test.cc +++ b/Socket/Protocols/INet/INet4Address.test.cc @@ -1,3 +1,5 @@ +// $Id$ +// // Copyright (C) 2007 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) @@ -26,6 +28,7 @@ // Custom includes #include +#include #include #include "INet4Address.hh" @@ -66,6 +69,31 @@ BOOST_AUTO_UNIT_TEST(inet4Address) BOOST_CHECK_EQUAL( str.str(), "128.129.130.131" ); } +BOOST_AUTO_UNIT_TEST(inet4Network) +{ + senf::INet4Network net (senf::INet4Address::Loopback,8); + BOOST_CHECK_EQUAL( net.address().address(), 0x7F000000u ); + BOOST_CHECK_EQUAL( net.prefix_len(), 8u ); + BOOST_CHECK( net ); + BOOST_CHECK( ! senf::INet4Network() ); + + senf::INet4Network net2 ("192.0.111.222/16"); + BOOST_CHECK_EQUAL( net2.address(), senf::INet4Address::from_string("192.0.0.0") ); + BOOST_CHECK_EQUAL( net2.prefix_len(), 16u ); + + BOOST_CHECK( net != net2 ); + BOOST_CHECK( net.match(senf::INet4Address::from_string("127.0.0.1")) ); + BOOST_CHECK( ! net2.match(senf::INet4Address::from_string("127.0.0.1")) ); + BOOST_CHECK( ! net.match(net2) ); + BOOST_CHECK( net2.match(senf::INet4Network("192.0.111.0/24")) ); + BOOST_CHECK( ! net2.match(senf::INet4Network("192.0.0.0/15")) ); + + BOOST_CHECK_EQUAL( boost::lexical_cast(net2), "192.0.0.0/16" ); + + BOOST_CHECK_EQUAL( net2.host(-1), senf::INet4Address::from_string("192.0.255.255") ); + BOOST_CHECK_EQUAL( boost::lexical_cast(net2.subnet(2u,24u)), "192.0.2.0/24" ); +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_