X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FINet4Address.test.cc;h=3dc83ae163b590e9d710833cd23e4e0e759c6e2b;hb=d6abda313f70c8a849c5e3f3bbfc12ce301789f1;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..3dc83ae 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,10 +28,11 @@ // Custom includes #include +#include #include #include "INet4Address.hh" -#include +#include "../../../Utils/auto_unit_test.hh" #include #define prefix_ @@ -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_