X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketPolicy.test.cc;h=2e70df938868e37106d288f43778456695f10c5c;hb=81f84badf27b66dbadec9890646ca1193e998505;hp=af167a4679898f6129d4466fb55c2e4cbf1efa8b;hpb=c52cd7d87dbb525c1267aad27391b8b7365dbb57;p=senf.git diff --git a/Socket/SocketPolicy.test.cc b/Socket/SocketPolicy.test.cc index af167a4..2e70df9 100644 --- a/Socket/SocketPolicy.test.cc +++ b/Socket/SocketPolicy.test.cc @@ -1,9 +1,9 @@ // $Id$ // -// Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Copyright (C) 2006 +// 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 // it under the terms of the GNU General Public License as published by @@ -20,25 +20,26 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// Unit tests +/** \file + \brief SocketPolicy unit tests */ -//#include "SocketPolicy.test.hh" +#include "SocketPolicy.test.hh" //#include "SocketPolicy.test.ih" // Custom includes -#include "SocketPolicy.hh" -#include "SocketPolicy.test.hh" - -#include -#include #include #include #include // enable_if +#include "SocketPolicy.hh" + +#include "../Utils/auto_unit_test.hh" +#include + #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// -using namespace satcom::lib; +using namespace senf; namespace { struct INetAddressingPolicy : public AddressingPolicyBase {}; @@ -55,26 +56,24 @@ namespace { struct WritablePolicy : public WritePolicyBase {}; struct UnwritablePolicy : public WritePolicyBase {}; - - struct SocketBufferingPolicy : public BufferingPolicyBase {}; - template + template struct ConvertibleValue { ConvertibleValue() {} ConvertibleValue(ConvertibleValue const & other) {} template - ConvertibleValue(ConvertibleValue const & other, - typename boost::enable_if< SocketPolicyIsBaseOf >::type * = 0) + ConvertibleValue(ConvertibleValue const & other, + typename boost::enable_if< SocketPolicyIsBaseOf >::type * = 0) {} ConvertibleValue const & operator=(ConvertibleValue const & other) { return *this; } template - typename boost::enable_if< SocketPolicyIsBaseOf, - ConvertibleValue >::type const & + typename boost::enable_if< SocketPolicyIsBaseOf, + ConvertibleValue >::type const & operator=(ConvertibleValue const & other) { return *this; } }; @@ -83,7 +82,7 @@ namespace { BOOST_AUTO_UNIT_TEST(socketPolicy) { - // All these checks are really compile-time checks ... + // Most of these checks are really compile-time checks ... typedef MakeSocketPolicy< UnixAddressingPolicy, @@ -95,9 +94,8 @@ BOOST_AUTO_UNIT_TEST(socketPolicy) UnspecifiedFramingPolicy, ConnectedCommunicationPolicy, ReadablePolicy, - UnspecifiedWritePolicy, - UnspecifiedBufferingPolicy> Policy2; - + UnspecifiedWritePolicy> Policy2; + BOOST_MPL_ASSERT(( boost::is_same )); typedef MakeSocketPolicy< @@ -109,8 +107,7 @@ BOOST_AUTO_UNIT_TEST(socketPolicy) UnspecifiedFramingPolicy, UnspecifiedCommunicationPolicy, ReadablePolicy, - UnspecifiedWritePolicy, - UnspecifiedBufferingPolicy> Policy4; + UnspecifiedWritePolicy> Policy4; BOOST_MPL_ASSERT(( boost::is_same )); BOOST_MPL_ASSERT_NOT(( boost::is_same )); @@ -121,13 +118,23 @@ BOOST_AUTO_UNIT_TEST(socketPolicy) // The following should fail at compile time // BOOST_MPL_ASSERT(( SocketPolicyIsBaseOf )); - - ConvertibleValue p1; - ConvertibleValue p3(p1); - p3 = p1; - // The following should fail at compile time - // p1 = p3; + { + ConvertibleValue p1; + ConvertibleValue p3(p1); + + p3 = p1; + // The following should fail at compile time + // p1 = p3; + } + + { + Policy1 p1; + Policy3 p3; + + BOOST_CHECK_THROW( Policy1::checkBaseOf(p3), std::bad_cast ); + SENF_CHECK_NO_THROW( Policy3::checkBaseOf(p1) ); + } } ///////////////////////////////cc.e//////////////////////////////////////// @@ -136,5 +143,10 @@ BOOST_AUTO_UNIT_TEST(socketPolicy) // Local Variables: // mode: c++ -// c-file-style: "satcom" +// fill-column: 100 +// c-file-style: "senf" +// indent-tabs-mode: nil +// ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: