libmoost
/home/mhx/git/github/libmoost/test/signal/signal_handler.cpp
Go to the documentation of this file.
00001 /* vim:set ts=3 sw=3 sts=3 et: */
00028 #include <boost/test/unit_test.hpp>
00029 #include <boost/test/test_tools.hpp>
00030 
00031 #include <vector>
00032 #include <string>
00033 
00034 #include <boost/thread.hpp>
00035 #include <boost/bind.hpp>
00036 
00037 #include "../../include/moost/signal/signal_handler.h"
00038 #include "../../include/moost/thread/xtime_util.hpp"
00039 
00040 using namespace moost::signal;
00041 using namespace moost::thread;
00042 
00043 BOOST_AUTO_TEST_SUITE( signal_handler_test )
00044 
00045 struct Fixture
00046 {
00047   int m_signal;
00048   signal_handler m_handler;
00049 
00050   void handle_signal(int signal)
00051   {
00052     m_signal = signal;
00053   }
00054 
00055   Fixture()
00056   : m_signal(0),
00057     m_handler(boost::bind(&Fixture::handle_signal, this, _1))
00058   {
00059   }
00060 
00061   ~Fixture()
00062   {
00063   }
00064 };
00065 
00066 BOOST_FIXTURE_TEST_CASE(test_do_nothing, Fixture )
00067 {
00068   BOOST_CHECK_EQUAL(m_signal, 0);
00069 }
00070 
00071 // TODO: damn, I think boost.test's signal handling (see execution_monitor.ipp)
00072 // is interfering with my own. this may make this class difficult to test
00073 
00074 /*BOOST_FIXTURE_TEST_CASE(test_do_something, Fixture )
00075 {
00076   raise(SIGHUP);
00077 
00078   BOOST_CHECK_EQUAL(m_signal, SIGHUP);
00079 }*/
00080 
00081 BOOST_AUTO_TEST_SUITE_END()