X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FNetdeviceController.test.cc;h=24258ee178ba759652baf30258cb22778fa70139;hb=532240d72e09e19e57fac9bb55c2560b9c9e5b97;hp=f3accd970321b1c05a9f4dc1b779694673070853;hpb=f73fa16ed5abdce272ac77f8b8b9ef2b9922c266;p=senf.git diff --git a/Socket/NetdeviceController.test.cc b/Socket/NetdeviceController.test.cc index f3accd9..24258ee 100644 --- a/Socket/NetdeviceController.test.cc +++ b/Socket/NetdeviceController.test.cc @@ -1,8 +1,8 @@ // $Id$ // // Copyright (C) 2007 -// Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Thorsten Horstmann // // This program is free software; you can redistribute it and/or modify @@ -20,13 +20,15 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// Unit tests +/** \file + \brief NetdeviceController unit tests */ //#include "NetdeviceController.test.hh" //#include "NetdeviceController.test.ih" // Custom includes #include "NetdeviceController.hh" +#include "Protocols/Raw/MACAddress.hh" #include "../Utils/auto_unit_test.hh" #include @@ -34,16 +36,42 @@ #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// -BOOST_AUTO_UNIT_TEST(NetdeviceController) -{ -// senf::NetdeviceController ctrl ("eth0"); -// std::cout << ctrl.hardwareAddress() << "\n"; +BOOST_AUTO_UNIT_TEST(NetdeviceController) { + + senf::NetdeviceController ctrl ("lo"); + BOOST_CHECK_EQUAL( ctrl.interfaceName(), "lo"); + + int index = ctrl.interfaceIndex(); + BOOST_CHECK_EQUAL( index, senf::NetdeviceController(index).interfaceIndex() ); + + BOOST_CHECK_THROW( senf::NetdeviceController("invalid_interfacename"), senf::SystemException ); + + int oldMTU; + SENF_CHECK_NO_THROW( oldMTU = ctrl.mtu()); + + bool promisc; + SENF_CHECK_NO_THROW( promisc = ctrl.promisc()); + + if (getuid() != 0) { + BOOST_WARN_MESSAGE(false, "Cannot run some tests of senf::NetdeviceController as non-root user"); + return; + } + + SENF_CHECK_NO_THROW( ctrl.mtu(oldMTU-16)); + BOOST_CHECK_EQUAL( ctrl.mtu(), oldMTU-16); + SENF_CHECK_NO_THROW( ctrl.mtu(oldMTU)); + BOOST_CHECK_EQUAL( ctrl.mtu(), oldMTU); + + SENF_CHECK_NO_THROW( ctrl.promisc( !promisc)); + BOOST_CHECK_EQUAL( ctrl.promisc(), !promisc); + SENF_CHECK_NO_THROW( ctrl.promisc( promisc)); + BOOST_CHECK_EQUAL( ctrl.promisc(), promisc); } ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ - + // Local Variables: // mode: c++ // fill-column: 100