X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketPolicy.test.cc;h=84a830cbd856fcb4477865706dcc0f2c64519949;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=5b7aeb05bb554cb4ecde6f3300b5a6fd09829d1d;hpb=ac6a813d9d99f7add4e13aff7a4bcd314d5604a6;p=senf.git diff --git a/Socket/SocketPolicy.test.cc b/Socket/SocketPolicy.test.cc index 5b7aeb0..84a830c 100644 --- a/Socket/SocketPolicy.test.cc +++ b/Socket/SocketPolicy.test.cc @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2006 +// Copyright (C) 2006 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) // Stefan Bund @@ -55,7 +55,7 @@ namespace { struct WritablePolicy : public WritePolicyBase {}; struct UnwritablePolicy : public WritePolicyBase {}; - + struct SocketBufferingPolicy : public BufferingPolicyBase {}; template @@ -65,7 +65,7 @@ namespace { ConvertibleValue(ConvertibleValue const & other) {} template - ConvertibleValue(ConvertibleValue const & other, + ConvertibleValue(ConvertibleValue const & other, typename boost::enable_if< SocketPolicyIsBaseOf >::type * = 0) {} @@ -73,8 +73,8 @@ namespace { { 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 +83,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, @@ -97,7 +97,7 @@ BOOST_AUTO_UNIT_TEST(socketPolicy) ReadablePolicy, UnspecifiedWritePolicy, UnspecifiedBufferingPolicy> Policy2; - + BOOST_MPL_ASSERT(( boost::is_same )); typedef MakeSocketPolicy< @@ -121,13 +121,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 ); + BOOST_CHECK_NO_THROW( Policy3::checkBaseOf(p1) ); + } } ///////////////////////////////cc.e//////////////////////////////////////// @@ -136,5 +146,10 @@ BOOST_AUTO_UNIT_TEST(socketPolicy) // Local Variables: // mode: c++ +// fill-column: 100 // c-file-style: "senf" +// indent-tabs-mode: nil +// ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: