X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FINet4Address.test.cc;h=3d1fce3881df476a2f506c68930a479e24c82b99;hb=6f50bf49e282c0528f51faa0a245bbfa2b867399;hp=186202f62487c553919f5dc0798da2d4f58be8dd;hpb=fb08e3defcfb7cd8851ede0fab6cad424d168485;p=senf.git diff --git a/Socket/Protocols/INet/INet4Address.test.cc b/Socket/Protocols/INet/INet4Address.test.cc index 186202f..3d1fce3 100644 --- a/Socket/Protocols/INet/INet4Address.test.cc +++ b/Socket/Protocols/INet/INet4Address.test.cc @@ -1,6 +1,8 @@ +// $Id$ +// // Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -26,10 +28,11 @@ // Custom includes #include +#include #include #include "INet4Address.hh" -#include +#include "../../../Utils/auto_unit_test.hh" #include #define prefix_ @@ -39,6 +42,7 @@ BOOST_AUTO_UNIT_TEST(inet4Address) { senf::INet4Address addr (senf::INet4Address::from_string("127.0.0.1")); BOOST_CHECK_EQUAL( addr, senf::INet4Address::Loopback ); + BOOST_CHECK( addr != senf::INet4Address::Broadcast ); addr = senf::INet4Address::from_string("localhost"); BOOST_CHECK_EQUAL( addr, senf::INet4Address::Loopback ); @@ -65,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_