libmoost
|
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()